home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 1
/
Cream of the Crop 1.iso
/
COMPRESS
/
MTA_VE55.ARJ
/
MTADOCEN.DOC
< prev
next >
Wrap
Text File
|
1991-09-01
|
324KB
|
6,485 lines
╔══════════════════════════════ ┌─────────────────┐
║ MTA Make Them Anything │ D.I.S.P. │────┐
║ Convert Compressed │ │░░░░│
╟────────────────────────────── │ │░░░░│
║ (c) 1991 Robert W.van Hoeven │ Dutch │░░░░│
╟────────────────────────────── │ Independent │░░░░│
║ Release : 14.55 │ ShareWare │░░░░│
║ Rel.Date: 1th September 1991 │ Programmer│░░░░│
╠══════════════════════════════ └─────────────────┘░░░░│
║ | │░░░░░░░░░░░░░░░░░│
║ │ MTA.EXE / MTM.EXE | └─────────────────┘
║ │ MTL.EXE / MTU.EXE | ┌─────┐ |
║ │ MTA.CTL / MTA.CHx | │░░░░░│ |
║ │ | └──┬──┘ |
║ │ Lines starting with '│' are | ┌────┴────┐ |
║ │ changes to release 14.50/51 ------││││││ ═══│-------
║ └─────────┘
╠═══════════════════════════════
║ Address: Robert W. van Hoeven
║ PO. Box 131
║ 1170 AC Badhoevedorp
║ Nederland / Holland
╚═══════════════════════════════
┌───────┬─────────────────────────────────────────────────────────────┐
│ 0 │ Table of contents │
└───────┴─────────────────────────────────────────────────────────────┘
1 ---- General information
1.1 Copyrights and Licence Agreement
1.2 Newer versions and contacting the author
2 ---- Package description and requirements
2.1 Preface
2.2 Requirements
2.3 Included files
2.4 History
2.5 Introduction & specs
3 ---- Installation description
3.1 Installation
3.2 Remarks on ARC
3.3 Remarks on PAK
3.4 Remarks on ZIP
3.5 Remarks on PKPAK/PKUNPAK
3.6 Remarks on DWC
3.7 Remarks on ZOO
3.8 Remarks on LHarc
3.9 Remarks on LArc
3.10 Remarks on MD
3.11 Remarks on ARJ
3.12 Remarks on HYPER
3.13 Remarks on PKLITE
3.14 MTA.CTL
3.14.1 Basic statements
3.14.2 Statements that define the environment that MTA uses (paths)
3.14.3 Statements that define the logging
3.14.4 Statements that define the selection of files
3.14.5 Statements that define the resulting files
3.14.6 Your own (new) compressor
3.14.7 Statements that define the MTA exits
3.14.8 Statements that are usefull to Bulletin Board Systems and SysOps
3.14.9 Special statements
3.14.10 Statements available when using a registered version
3.15 Customized compression
3.16 Recursive support
3.17 Compression file-in-compression file
3.18 MTA Touching System
3.19 Optimal sizes
3.20 Diskette option
3.21 Virus detection
3.22 Screen control
3.23 KeyBoard control
3.24 Swapping
3.25 Encryption and Authenticity Verification
3.26 Mice and other trouble
3.27 ITS
3.28 MTA and 4Dos <tm>
3.29 Substituted drive
3.30 Running multiple copies of MTA at the same time
3.31 Compression of single executable files (PKLITE)
3.32 The MTA tag-window
3.33 The MTA-child
3.34 MTA and unattended operations
3.35 Other computers
3.36 Usage in an online-environment (remote BBS logging)
3.37 Archives with volume-labels
│ 3.38 TICK-files and related material
│ 3.39 FES, yet another TICK-clone ?
4 ---- Runtime information
4.1 Command-line switches
4.2 Aborting MTA
4.3 LOG file
4.4 The (de)compressors
4.5 Executing MTA
4.6 Errors
4.7 Specials
4.8 Very special notes to read and not forget
5 ---- Version information and credits
5.1 The BETA-team
5.2 Credits
5.3 Version history
5.4 Copyright, Trademarks
┌───────┬─────────────────────────────────────────────────────────────┐
│ 1 │ General information │
└───────┴─────────────────────────────────────────────────────────────┘
1.1 Copyrights and Licence Agreement
────────────────────────────────────
- Users of the MTA-package must accept this disclaimer of warranty:
- The MTA-package is supplied as is. The author disclaims all
warranties, expressed or implied, including, without limitation,
the warranties of merchantability and of fitness for any purpose.
The author assumes no liability for damages, direct or consequential,
which may result from the use of the MTA-package;
- The MTA-package is a "shareware program" and is provided at no charge
to the user for evaluation. Feel free to share it with your friends,
but please do not give it away altered or as part of another system.
The essence of "user-supported" software is to provide personal
computer users with quality software without high prices, and yet to
provide incentive for programmers to continue to develop new products.
- If you find this program useful and find that you are using and
continue the use of the MTA-package after a 30 days trial period,
you must register the MTA-package as described below;
- Non-commercial can get a licence for the usage up to this release
of the MTA-package for a small amount of money. Look into the
details in REGISTER.MTA. Previous registered users will receive
a big reduction to upgrade to the newer versions. These users
should look into the details in UPGRADE.MTA.
For Non-commercial users there is a POSSIBILITY to submit to one
of the special contracts as explained in the file REGISTER.MTA.
- Commercial usage of MTA will cost somewhat more. Also, a so called
'closed' Bulletin Board System (a system where the user must pay
direct to the SysOp to get full access) is has to pay more than
a Non-commercial user. Both types of users should look into the
details in REGISTER.MTA;
- The registration of the MTA-package will licence ONE copy for use on
any computer at any one time, as long as the usage confirms to the
type of registration you have done (so NON-commercial usage when you
have a non-commercial licence);
- Anyone distributing the MTA-package for any kind of remuneration must
first contact the Author at the address above for authorization.
- You are encouraged to pass a copy of the MTA-package along to your
friends for evaluation. Please encourage them to register their
copy if they find that they can use it;
- Support on MTA, when used in a non-commercial environment, is
available by means of written letters or by entering the inter-
national echomaol area DISP;
- Problems and suggestions can be entered in the FidoNet <tm> Echomail
conference <tm> called DISP (international). Entering this echo does
not exclude you of the duty to register the MTA-package, though users
who evaluate the product can enter the echo for questions;
- The MTA-package, all programs, the documentation and support-files is
copyrighted 1990,91 by Robert W. van Hoeven, PO. Box 131, Badhoevedorp
1170AC, Holland. All rights are reserved. You may copy this package
for backup purposes. Also you may copy and share unmodified copies of
the whole package, providing that the copyright notice is reproduced
and included on all copies.
Excluded from this statement are the support-files written by other
authors. Please refer to the documentation of these programs for
copyrights and licence agreements;
- It is forbidden to modify, adapt, translate, reverse engineer, de-
compile and/or disassemble the software in the MTA-package. Patching
the medium at places that carry the software is seen as a program
change and is also forbidden. It is forbidden to create a so called
'bypass' to skip the original introduction screens and delay. Also
it is forbidden to use such a 'bypass' unless supplied by the author
(Robert W. van Hoeven) himself;
- Performing any of the illegal actions as stated in the previous
lines, is a theft and no fair play to the author and, more important,
to the registered users;
- Bulletin Board Systems that distribute the MTA package can convert
the WHOLE package to any archive-system they like but all original
files must be included in the new archive. The MTA-package on the
Bulletin Board can contain at the most 2 extra files. These files
can only be a commercial for that Bulletin Board and/or validation
data that is presented as a service to all users and shall have no
other functions;
- After the normal trial period of 30 days, you must register the soft-
ware (see REGISTER.MTA) or you must remove it from your PC;
- Comments, suggestions and bug reports are welcome and will be answered
as soon I have the time to do so. You can send me a letter of leave a
NetMail <tm> message named to Rob Van.hoeven (mind the point) on node
2:512/100 (RA Support, Monster, Holland, SysOp is Reinier de Groot).
When you want to send me normal mail, address it to:
Robert W. van Hoeven, PO. Box 131, 1171 AC Badhoevedorp, Holland;
Also you can enter messages in the FidoNet <tm> DISP Echomail <tm>
area;
1.2 Newer versions and contacting the author
────────────────────────────────────────────────────────────────────────
The newest version of MTA is always available at the DISP-HQ on node
2:512/100. MTA is also distributed thru a number of DISP support nodes.
There are three ways of obtaining newer versions of MTA:
│- Logging on at DISP-HQ or a support node
│ Look into the file SUPPORT.MTA for a full list of support noded;
- Logging on to a SDS node
MTA is distributed thru SDS/SDN, but only big minors (x.10, x.20 and
so on) and majors (14.01, 15.01 and so on) are submitted to the SDS
distribution point in Holland;
- Logging on to your own BBS;
Chances are, that you will find an older version (international
users) because it will take some time for the new version to
'bleed' thru the net;
- Update service;
You can enter a special update service (read REGISTER.MTA).
If you think you have found problems in MTA, or in any other case,
you wish to contact the author, you can send me:
- A letter to the address you can find in the header of this file;
- A NetMail <tm> message to Rob Van.hoeven (please mind the point
between Van and Hoeven) at 2:512/100 or (better) 2:512/100.5;
- A Message in the FidoNet <tm> DISP echomail <tm> area;
┌───────┬─────────────────────────────────────────────────────────────┐
│ 2 │ Package description and requirements │
└───────┴─────────────────────────────────────────────────────────────┘
2.1 Preface
────────────────────────────────────────────────────────────────────────
Please notice the following:
- MTA is a ShareWare product in every right way, this means this
software is not crippled in any way. There are some options that
do not work in the Shareware version, but these only have to deal
with the registration itself !;
- This program only works when you have the right compressors available
on your PC. It does not do any compression of it's own ! The program
only interprets all the supported formats. I can not think of any
problem with that, but if any of the authors/companies of the
supported products has problems with this program, I will remove
that piece of coding at once (although I could not find any quote
like 'You may NOT call our program in program's of your own' in any
of the doc's);
2.2 Requirements
────────────────────────────────────────────────────────────────────────
MTA requires: - PC XT/AT/386
- At least 400K free memory but it depends on the
archiver(s) you use;
- DOS 3.xx and higher;
(tested with 4Dos 3.02, should work with lower
versions);
- DOS 2.xx ONLY when registered. In this case, a
customized version will be created;
- HDU optional
- Mouse optional
- One or more virus-scanners (optional)
- The original (de)compression programs
2.3 Included files
────────────────────────────────────────────────────────────────────────
The package includes : MTA.EXE The main program
MTA.CH1 The chained tag-menu module
MTA.CH2 The chained help-menu module
MTM.EXE The maintenance program
MTU.EXE The special VIRSCAN caller
MTL.EXE The list program
MTA_DIR.EXE The directory utility
MTA_CRC.EXE The VALIDATE caller
MTA__BAT.EXE A SFX with examples of batches
MTA__UTL.EXE A SFX with additional utilities
2.4 History
────────────────────────────────────────────────────────────────────────
MTA's history is now around a 2 years old. MTA was written for some
friends who had 'the conversion blues'. In somewhat less than a year,
and with the great support of many users, MTA is grown to a 'full
blown' conversion program.
If you are searching for a 'quick and dirty' conversion from only
one type of archive to another one, you CAN use this program, but
using a small customized program should be faster.....
If you think you are going to convert many types of archives and
even convert your own once in a while, MTA will prove to be a
handy program.
If you own a Bulletin Board System, you will find out that MTA can
be used in 'full blown action', both manually or unattended (inside
an event). Links to other software I have developed (QF-series) will
be included soon;
I think, there will be lots of other programs that can do the job,
and, of course, it's up to you which program you will use, but if
you want to have full control over almost EVERY action during the
conversion from A to B, MTA will not disappoint you in any way.
MTA is hopefully the last of the conversion tools anyone needs, although
I agree with people who say 'Do I need a canon to shoot a fly ?'. In
any case, hereby I provide you all with a real conversion canon. Please
shoot the right things with it !
2.5 Introduction & specs
────────────────────────────────────────────────────────────────────────
Those who took the time to read the history (and I know of at least
one, beside myself who hasn't done this) will have a general picture
of MTA's functions. For those who didn't, a brief review and some
general specs:
MTA can:
- Convert most of the compressed files to almost any other format,
provided, you have the original (de)compression program(s);
- Convert SFX (self extraction) files from ARC/PAK/ZIP/LHarc,LArc and
ARJ systems to normal compression files of any kind;
- Conversion can be done on individual files, whole or partial
directories (not recursive) and whole or partial diskettes (only
root) by providing a valid file-mask to MTA;
- When converting, MTA keeps (optional) a log-file (text-file) with
the result of its actions. MTA appends to an existing log-file or
creates one the first time;
- Most of the important compression options can be configured with
a control-file (MTA.CTL);
- When converting whole diskettes, MTA can hold back those files that
won't fit on this diskette AFTER the conversion. Later, MTA can spool
those files to diskettes with more free space;
- When converting one (or more) files, MTA can move them to an alternate
directory;
- When converting files, MTA converts compression files INSIDE this
files to the same compression system, while keeping up almost every
function as you have for the main file (some of the other programs
use a more 'slick' way to deal with this, but can not give you all
the functions when converting nested archives);
- MTA can add comment-files to files (nice banners in the ZIP for
Bulletin Boards), currently for ZIP, ZOO, DWC and ARJ;
- MTA can carry over the ARCHIVE comment (not (yet) the file comments)
in three different ways;
- MTA can run unattended (nice for BBS's);
- Depending on the TARGET format, MTA can preserve directories, as
supported by ZOO, ZIP ,ARJ and LHarc (recursive support);
- You can configure your own compressor (if you have one), or any new
type of compressor as a user-implemented feature;
- Prepared to run a customized compression/decompression program;
- The log-file can be analyzed with the support-program MTL.EXE. This
program is also useful when you want to 'compress' your log-file;
- Call user-EXIT when converting full diskettes;
- Call user-EXIT after any conversion;
- Call user-EXIT between conversion;
- Call EXIT before the real start and end of MTA's execution. This
could be handy for those users who use a cache device;
- Run unattended in a BBS configuration while changing FILES.BBS
to reflect the new situation;
- Run unattended in a BBS configuration and only convert the new
files;
- Can optimize an archive to the smallest type;
- Scan archives for viruses while converting them with McAfee's
SCAN.EXE <tm> or any other virus-scanner;
- Working on multiple directories in one run;
- RBBS compatible;
- Create CRC-values with a CRC program and add them in the archives;
- Leave ZIP AV'ed programs as they are (keeping the original AV)
while MTA is still able to delete some Sysop-added files and to
include some new files and comments;
- Fully mouse-aware (see chapter on mice);
- Fully ITS (1.06 and up) aware (see chapter on ITS);
- 4Dos <tm> aware;
- Full recursive support;
- EGA/VGA aware;
For all its functions MTA 'leans' heavily on it's own control-file.
Most of the fixed options can be toggled with invocation switches.
┌───────┬─────────────────────────────────────────────────────────────┐
│ 3 │ Installation description │
└───────┴─────────────────────────────────────────────────────────────┘
3.1 Installation
────────────────────────────────────────────────────────────────────────
People who think that installing MTA is easy should read the specs
again. With such a number of options at hand, installation will be
something more than easy.
People who (still) think that installing MTA is difficult are wrong.
When you take the time to read every possible option while creating
the control-file at the same moment, you will see that everything
is not that difficult at all.
If you still have problems, you could enter a message in the FidoNet
DISP Echomail area. Also consider paying a small amount of money and
support is very near ! Also a full-screen installation program to
setup a customized MTA.CTL is available, but only for registered
users (look into REGISTER.MTA).
Most users will have a hard-disk. Owners of a diskette oriented PC can
use MTA (provided you have a second drive). Installation however is
described for hard-disk owners:
- Place MTA.EXE and MTL.EXE in some directory in the DOS PATH. All
additional batch-files (if any) for the various exits should also
be present in the DOS PATH. Place MTA.CH1 and MTA.CH2 in the same
directory as MTA.EXE (this is mandatory !!).
MTA.EXE can be renamed (DOS 3.xx passes the (new) program-name to
the program itself, so when MTA must swap, it knows how to call
itself, even when you have renamed the file. The MTA.CHx files
CAN NOT be renamed and must be in the same directory as MTA.EXE
(or its renamed alias);
- Create a MTA.CTL file in the same directory (see instructions);
- If your MTA.CTL is not going to be somewhere inside the DOS-path
and you will convert nested arc-in-arc files, it is advised to
include a environment variable MTA, set to the path containing
both MTA.EXE, MTA.CHx and MTA.CTL. The format is 'SET MTA=path';
- Take special care with memory requirements (see description of
MTA.CTL's FreeMemory option);
- Change to your trashcan directory (if one) and do a dummy-run. You
can supply a 'non existing' file mask. MTA checks the MTA.CTL (please
correct the errors) and creates a log-file (optional);
- NEVER use compression programs like LZEXE, SHRINK, DIET or PKLITE
on the following files: MTA.EXE/CH1/CH2, MTL.EXE, MTM.EXE and the
MTZ.EXE programs. This will be fixed in the next major version
(15.01) but until then you can not use these programs on these
files. Skipping this warning can lead to a 154 error after you
have started the program;
That's all there is to, except for the real freaks. BBS owners who plan
to use MTA to convert any incoming file to their own compression
system are not ready yet.
3.2 Remarks on ARC
────────────────────────────────────────────────────────────────────────
MTA supports : All ARC versions up to 6.02
There are no special tricks concerning ARC. When destination is ARC,
FULL recursive support is available if you use the SubstDrive option
in MTA.CTL, otherwise, no recursive support is available, due to the
nature of ARC's recursive support.
MTA is NOT able to detect incoming encrypted ARC-files. There is no
indication in the ARC whatsoever that an ARC-file is encrypted. Please
be careful ! MTA IS able to unARC encrypted ARC-files when you supply
the correct switches to MTA;
│There are a few special ARC-files. These are the files that are
│created with an ARC-clone or with ARC 7.xx (or whatever SEA calls it).
│In some cases these files can not be decompressed with ARC 6.xx. You
│need special program like ARCE.COM/EXE or XARC.EXE to decompress them.
│These two little programs don't use any options on the command-line and
│can NOT be used with the ARCPATH option in MTA.CTL. For these special
│cases (most of the time they will occur in BBS environments) I have
│created the UNARCPATH option. This option calls a decompress program
│that is compatible with ARC 6.xx/ARC 7.xx files. By default XARC.EXE
│is used but you can also use ARCE.COM (higher versions). When XARC.EXE
│is somewhere in the DOS-path OR you supply UNARCPATH in MTA.CTL the
│following sequence will happen with true-ARC (not PAK/not PKPAK) files:
│
│- XARC.EXE (or its substitute) is called for decompress;
│- If the target is ARC, ARC.EXE (or PAK or PKPAK) is used for compress;
│
│If UNARCPATH is NOT present, the following sequence occurs:
│
│- ARC.EXE (or PAK or PKPAK) is used for decompress;
│- If the target is ARC, ARC.EXE (or PAK or PKPAK) is used for compress;
│
│I find it rather strange that neither SEA not NoGate have released a
│version (SEA for shareware, lets say 6.10) that can also decompress
│extended archives but MTA can now bypass this flaw !
Please read the chapter (3.35) on other computers;
3.3 Remarks on PAK
────────────────────────────────────────────────────────────────────────
MTA supports : All PAK versions up to 2.51
There are a few things to keep in mind when using a PAK version. The
oldest version (also called GSARC) had some trouble with errorlevels.
If you are still using this version, insert PAKVersion 0 in MTA.CTL.
If you use PAK 1.5 to PAK 1.61, everything will be fine with this
version of MTA.
There are some special tricks concerning PAK. When destination is PAK,
FULL recursive support is available if you use the SubstDrive option
in MTA.CTL, otherwise, no recursive support is available, due to the
nature of PAK's recursive support.
When adding comments to the PAK file (AutoComment option), up to
64000 bytes are allowed, although this seems to be more than PAK
can support.
MTA is NOT able to detect incoming encrypted PAK-files. There is no
indication in the PAK whatsoever that a PAK-file is encrypted. Please
be careful ! MTA IS able to unPAK encrypted PAK-files when you supply
the correct switches to MTA. The Security Envelope is not processed
by MTA (only ZIP's Authenticity Verification).
NoGate Consulting have released a PAK 2.5x with ZIP-support inside.
MTA is not able to use PAK as a substitution for PKWare's ZIP. I
don't know if this support will give the same problems with PAK and
ZIP as we have seen with PKWare and S.E.A. but besides that, there are
some major problems (?) with PAK and ZIP-files with directories in-
side. I have not got PAK's /I and /PATH options working with a ZIP
that contained directories. Use the normal PKZIP/PKUNZIP to convert
ZIP's. If anyone is interested in using PAK as a substitute for ZIP
and there are no copyright problems with PAK (using ZIP), I will con-
sider to implement this feature.
Please read the chapter (3.35) on other computers;
3.4 Remarks on ZIP
────────────────────────────────────────────────────────────────────────
MTA supports : All ZIP versions up to 1.10
When using ZIP files (as destination), you must remember to set the
correct compression switches in the ZIPCompression option in MTA.CTL.
You can not (of course) use a switch that is not supported with your
current version of ZIP. So if you use PKZ 0.92, you can not code -es
in the ZIPCompression option.
When adding comments to the ZIP file (AutoComment option), up to
64000 bytes are allowed. I have had troubles with the 0.92 evaluation
version of PK(UN)ZIP, but versions 1.01 to 1.10 seem to work ok.
MTA is able to detect and process both encrypted ZIP-files and
ZIP-files with Authenticity Verification set to ON. MTA will skip
encrypted ZIP-files when no password is supplied to MTA.
Users have pointed out that MTA uses a way to add comments to the
ZIP-files (rerouting of standard devices) that can cause incomplete
comments in the ZIP. This is true (the statement that rerouting
like PKZIP -z TEST <COMMENT.FIL could cause trouble) but not true
for MTA. MTA only uses this kind of operations with the CarryComment
option. In THAT case, MTA will place a CR-LF combination at the end
of the comment itself and no harm is done. For normal descriptions
in ZIP's (AutoComment option), MTA uses (and always used) its own
routines.
From 14.50 and on, conversion of volume-labels from and to ZIP files
is available;
3.5 Remarks on PKPAK/PKUNPAK
────────────────────────────────────────────────────────────────────────
MTA supports : All PKPAK/UNPAK versions up to 3.61
There is nothing special in this support. To go along with S.E.A.,
PKPAK/PKUNPAK format is not supported as destination, nor are the
(archive) comments inside a PKware created ARC-file;
MTA is NOT able to detect incoming encrypted PKPAK-files. There is no
indication in the ARC whatsoever that a PKPAK-file is encrypted. Please
be careful ! MTA IS able to unPAK encrypted PKPAK-files when you supply
the correct switches to MTA.
3.6 Remarks on DWC
────────────────────────────────────────────────────────────────────────
MTA supports : DWC version 5.10A
There is nothing special in this support. For included paths, the
same goes as for PAK 2.0 (no support). You can supply an additional
parameter to DWC by means of the DWCCompression option. You can
select to compress on speed or size. The little fixes and changes in
V 5.10 do not change the way MTA works along with DWC.
There are some special tricks concerning DWC. When destination is DWC,
FULL recursive support is available if you use the SubstDrive option
in MTA.CTL, otherwise, no recursive support is available, due to the
nature of DWC's recursive support.
MTA is able to detect and process DWC files that are encrypted. MTA
will skip an encrypted DWC-file when no password is supplied to MTA.
3.7 Remarks on ZOO
────────────────────────────────────────────────────────────────────────
MTA supports : ZOO version 2.10
There is nothing special in this support. Full recursive and relative
│path support is available. MTA also supports ZOO 2.01 'extended' and
│the new ZOO 2.10 with very small target files (high compression).
│
│You can set high compression for ZOO by using the ZOOCompression
│option with a value of h.
When adding comments to the ZOO file (AutoComment option), up to
64000 bytes are allowed, although this seems to be more than ZOO
can support.
3.8 Remarks on LHarc
────────────────────────────────────────────────────────────────────────
│MTA supports : All LHarc versions up to 2.13E
From 14.30 and up, MTA will support LZH files created with LHARC 2.10
and higher. I have not seen any versions later than 1.13d (original
versions that is) and not earlier that 2.05, so it could be possible
that some 'inbetween' version (>1.13d or <2.05) will not function.
MTA does not support the invalid extension ICE unless you have selected
to support SFX-files.
There are some special tricks concerning LZH. When using LZH (in/out),
FULL recursive support is available if you use the SubstDrive option
in MTA.CTL, otherwise, no recursive support is available, due to the
nature of LZH's recursive support.
The author of LZH has made a terrible mistake in versions below the
2.06 I have seen. In version 2.05 at least, he has introduced a
special (but rather failsafe) test on the length of the archive. If
the archive is longer than its original size (after compression is
done) the LHA program can still unpack the archive but returns with
an errorlevel. I know at least 2 possible sources of problems:
- When downloading such a file with some protocols (original XModem
to name one) the file is appended to the length of the block that
has been send. In most cases the original archive will not be on
that block-boundery, so decompressing will be possible, but always
with an error;
- When using MTA (!) with the MarkString and marking set to on, MTA
will 'glue' 20 bytes to the archive. This ALSO causes LHA to return
an errorlevel when decompressing;
In both cases MTA will decompress the LZH-file, report an error and
move the file to the error-directory. We can not use that specific
error-level (a) because it is probably used for some other errors
too, (b) it is likely to be used on a later moment (and forgotten
by me, so problems will occur). From 14.35 and up, I have implemented
an option to be used in that case (UnMark along with /UNMARK). This
option will cause MTA to remove the mark-string BEFORE decompression
but only works with your own (marked) archives AND when you did not
change the mark somewhere along the way. It seems that Yoshi has
changed things again (sigh) back to normal with the 2.06 version,
but because of lacking documentation I can not be sure of this, in
my case everything worked again.
Another problem that occurs with the LHA (LHARC 2.xx) implementation
is the backward compatible archive format. Look at chapter 4.8 (Very
special notes to read and not forget) for details. Also read the
description of the ExtendedTesting option !!!!
Please read the chapter (3.35) on other computers;
Remember to set the LZHVersion option to the correct value !!!!!!!!!!
3.9 Remarks on LArc
────────────────────────────────────────────────────────────────────────
MTA supports : LArc version 3.33
MTA supports LArc as it can. There is no documentation available to
me, so everything comes from 'the dark'.
There are some special tricks concerning LZS. When using LZS (in/out),
FULL recursive support is available if you use the SubstDrive option
in MTA.CTL, otherwise, no recursive support is available, due to the
nature of LZS's recursive support.
3.10 Remarks on MD
────────────────────────────────────────────────────────────────────────
MTA supports : MDCD version 1.00
MTA supports MDCD. The not so commonly used MDCD program can be used
both as source and as target. Although the sources are available, MTA
will use the stand-alone program MDCD.EXE for (de)compression.
3.11 Remarks on ARJ
────────────────────────────────────────────────────────────────────────
│MTA supports : ARJ version 2.20
Support for ARJ is rather straight foreward. All standard functions
are implemented but at least ARJ 0.20 is needed because MTA uses the
m(ove) option and not the a(dd) /d(elete) combination.
One drawback of ARJ can be its memory consumption. In some cases (XT,
many TSR's) it is needed to use the swapping option of MTA to do a
call for ARJ. You should experiment with COMPRESS and not DECOMPRESS
because the compress function needs more memory than the decompress
function of ARJ. Keep in mind that MTA can use a variable number of
extra bytes of memory, depending on the number of selected files.
You should at least use a 20-40K margin between MTA and ARJ. Large
computers (386+) can free most of their memory in upper memory, so
MTA will have enough room to survive WITH ARJ and WITHOUT swap.
MTA does NOT support the usage of extended files (multi-volume
ARJ-files) but there will be no need to use MTA on such files at
all. Archive comments can only be used with ARJ 0.14 and up. All
comment-related MTA-functions will work on ARJ files. Keep in mind
though, that ARJ is LINE-oriented. If the comment you would like
to add (e.g. a banner file) starts with an empty line, or has
empty lines inside the banner, ARJ will think that the comment is
finished and nothing, or only a part of the comment is added !
Up from MTA 14.10 (and ARJ 0.15 for that matter), MTA will also be
able to convert ARJ-SFX (self extracting archive) files.
MTA can (from version 14.35 and up) also detect ARJ files with the
security envelope. Unlike ZIP, ARJ does not allow any changes to
these files. With KeepAV on, MTA will only check the included files
for special attributes and for viri (if installed) but is unable to
delete or add files, nor will MTA be able to insert comments in such
a file.
ARJ contains the original archive-name within the archive itself. MTA
can use this name and (optionally) rename the source-archive back to
that original name before conversion start (OriginalARJName option).
Also MTM, MTL and MTZ are changed to reflect the results of the change
from or to ARJ and to do maintenance on these files.
Support for the 2.10 volume labels is added. Please remember to put
the KeepVolLabel (/KEEPVL) option on ONLY in combination with ARJ
version 2.10. If you use ZIP (1.10) and a lower version of ARJ than
2.10, conversion of the volume-labels will cause ARJ to abort and
the converted files to be moved to the error-directory !
3.12 Remarks on HYPER
────────────────────────────────────────────────────────────────────────
MTA supports : HYPER version 25 (and up)
This nice little compression program from Germany, is also supported
in MTA. Testing (to implement the protocol in MTA) gave results that
are in the same order as LHARC.
MTA support the recursive features in HYPER. Any commenting in a HYP
file is impossible (yet) and thus not supported by MTA. All comment
related features will do nothing on a HYP file.
MTA will support HYPER SFX (self extracting archive) files.
Also MTM, MTL and MTZ are changed to reflect the results of the change
from or to HYPER and to do maintenance on these files.
3.13 Remarks on PKLITE
────────────────────────────────────────────────────────────────────────
│MTA supports : PKLITE version 1.12 (and up)
It is a little off-topic type of program to be included in MTA, but
it is. MTA (and the selection-menu MTA.CH1) is changed so that you
easy convert COM/EXE files to compressed (self-contained) COM/EXE
files with PKLITE. I think this is a usefull bonus (and nothing more)
to MTA.
Why not include LZEXE you would ask. The reasons are simple (and a
hint to the author, based on the current version 0.91):
- LZEXE can only directly compress EXE files (COM files need a
special conversion);
- LZEXE can only go one way;
In the near future I will think about adding the Japanese DIET program
into MTA (it can do the same, and more, than PKLITE).
When MTA works in (UN)PKLITE mode, it can only convert with PKLITE.
All other files (archives) are not converted.
When MTA ignores files in the selection, there can be a number of
reasons. These are:
With PKLITE:
- The file is already PKLITE'ed;
- The file is already LZEXE'ed;
- The file is a SFX (Self extracting archive);
With UNPKLITE:
- The file is not PKLITE'ed;
LZEXE files are left, because it wil create problems when converting
these programs with PKLITE and when it does NOT create problems, there
will be NO gain in size. SFX-files are left for the same reasons.
3.14 MTA.CTL
────────────────────────────────────────────────────────────────────────
The MTA.CTL file is a normal text-file (ASCII-file). You can create
this file with program's like EDLIN or any other ASCII-editor.
MTA.CTL must be in the DOS-path (DOS 2.xx) or in the same directory
as MTA.EXE (DOS 3.xx).
MTA.CTL contains many options. Some of them optional, some of them not.
The general format for the MTA.CTL file is:
Option {parameter} {parameter} ..... {parameter}
There are NO restrictions to the position you start the command, nor
the starting position of the (optional) parameters, but the 'option'
and (if present) the 'parameters' have to be separated with one or
more spaces. You can make any mixture of upper and lower case !
Some of the parameters in the MTA.CTL file can be overruled with
command-line switches. A generalized example of MTA.CTL is included
in the release-file. It contains ALL options available in this release.
The following sub-chapters of 3.14 will contain the several statements
you can use in MTA.CTL. In the documentation, the statements are put
in logical groups. These groups contain statements with the same sort
of functions. The actual order of the statements in MTA.CTL does not
matter at all.
3.14.1 Basic statements
────────────────────────────────────────────────────────────────────────
The following statements are more or less basic statements and should
be used in any setup. Some of the statements can be left out, because
they only add something extra or change the default that MTA.EXE itself
assumes.
┌─────────────────────────────────────────────────────────────────────┐
│ ARCPath [path] {opt} {SWAP} │
│ UNARCPath [path] {opt} {SWAP} │
│ PAKPath [path] {opt} {SWAP} │
│ ZOOPath [path] {opt} {SWAP} │
│ DWCPath [path] {opt} {SWAP} │
│ LZHPath [path] {opt} {SWAP} │
│ LZSPath [path] {opt} {SWAP} │
│ PKZIPPath [path] {opt} {SWAP} │
│ MDPath [path] {opt} {SWAP} │
│ PKUNZIPPath [path] {opt} {SWAP} │
│ PKUNPAKPath [path] {opt} {SWAP} │
│ ARJPath [path] {opt} {SWAP} │
│ HYPERPath [path] {opt} {SWAP} │
│ PKLITEPath [path] {opt} {SWAP} │
└─────────────────────────────────────────────────────────────────────┘
Usage : These options are optional. MTA will do an automatic search
for all (de)compression programs. There are some cases where
you want to instruct MTA where and what to find yourself. These
cases are:
- Your HDU is a bit slow, the searches for all the needed
(de)compression program's takes too long;
- You have renamed some (or all) the (de)compression program(s)
to your own name(s). MTA will never find these program(s);
- You want to include the archiver in the 'optimize' process;
- You want to swap MTA before the archiver is called;
You can include some (or all) of the above options to instruct
MTA where AND what to find. The supplied options overrule the
automatic search MTA conducts.
{opt} can either be a 'Y' a 'N' or not coded at all (in the
last case, 'N' is assumed). When {opt} is set to 'Y' (do not
include the quotes), you mark this archiver as one of the
archivers that is called when you use 'OptimizeOnSize' (/OOA)
to get the smallest possible archive-file. Only when you code
the OptimizeOnSize option or the /OOA switch, this optimize
process is called and in that case, all archivers marked with
a 'Y' will be used to obtain the smallest archive.
When {opt} is set to 'N' or you do not code it at all, MTA
will not include this archiver when OptimizeOnSize or /OOA
is used.
{opt} has no meaning with PKUNZIPPath, PKUNPAKPath and the
PKLITEPath option but must be set to 'N' when the third
parameter (SWAP) is used. Setting it to 'Y' will have no
meaning for these options. Also this option has no meaning
│ with the UNARCPATH option.
Any archiver you include in the optimize process (so {opt}
is set to 'Y') will cause a longer throughput. History tells
us that (in general) ZIP, ARJ and LHarc can be seen as a
'competition' group, followed by HYPER, DWC, ZOO, LArc as
the second group and the others as the 'rest'. Mixing programs
from different groups can be done but is not usefull.
The third parameters tells MTA if it need to swap itself out
of memory (only 4K left) before the archiver is called. When
you include 'SWAP' (without the quotes) as the third parameter,
MTA will do a swap (causing some delay, depending on the used
resources) of itself. This also causes the 'normal' window
below the MTA-frame NOT to work. MTA will start the archiver
just below its own frame, but is the archiver needs more that
6 lines (in 25 line mode) to do its thing, the MTA screen will
scroll of the screen. After MTA gains control again, the screen
is restored to the correct situation again. If you want to use
the swap-parameter, you must also include the {opt} parameter.
If you left it {opt} earlier, you can now code a 'N' and still
use the swap parameter without including this archiver in any
optimize process.
Please notice that you must supply the correct programs to the
above options. If you replace one of the program's with another
one, strange things (errors) can occur and data could corrupt.
Supply the following programs to the options:
ARCPath ARC.EXE or its alias
│ UNARCPath XARC.EXE or its alias
PAKPath PAK.EXE or its alias
ZOOPath ZOO.EXE or its alias
DWCPath DWC.EXE or its alias
LZHPath LHARC.EXE or its alias
LZSPath LARC.EXE or its alias
PKZIPPath PKZIP.EXE or its alias
MDPath MDCD.EXE or its alias
PKUNZIPPath PKUNZIP.EXE or its alias
PKUNPAKPath PKUNPAK.EXE or its alias
or PKXARC.COM or its alias
or PKXARC.EXE or its alias
ARJPath ARJ.EXE or its alias
HYPERPath HYPER.EXE or its alias
Where 'alias' is the name you renamed the original file to.
Please supply the complete drive, path and filename to any
of the options !
If you don't own one or more of the (de)compression programs,
leave out the related option, otherwise MTA will abort !
│ See comments on ARC for the UNARCPATH !!!!!
Relate: None
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ CompressionType ttt │
└─────────────────────────────────────────────────────────────────────┘
Usage : With this option you instruct MTA what type of target files
MTA will create (the default is ZIP).
Valid types (ttt) are ARC (SEA), PAK (NoGate), ZIP (PkWare),
ZOO (R. Dhesi), LZH (Yoshi), DWC (D.W. Cooper), OWN (anything),
LZS (Miki/Okumura), HYP (Sawatzki/Mischke), ARJ (Robert K.
Jung), PKLITE (PKWare) to create compressed EXE/COM files or
UNPKLITE (PKWARE) to decompress compressed EXE/COM files again.
You can use one of stated options if you own that type of
(de)compression program. Only one CompressionType option is
allowed.
I suggest to use one of the normal archivers (and not the
PKLITE/UNPKLITE options) because that is the major goal of
MTA. The PKLITE/UNPKLITE options come as a bonus and can
easy be used with the /PKLITE and /UNPKLITE switches on the
command-line.
Relate: None
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ LZHVersion xxx │
└─────────────────────────────────────────────────────────────────────┘
Usage : This parameter is optional. If you don't use this option, LHarc
version 1.13 is assumed. This option should only be included in
one (or both) of the following cases:
- You would like to see the correct version in the MTA screen;
- You work with a version higher than 1.13.
If the number is set to 1.13 or lower, MTA will ignore (warn)
LZH files created with LHARC 2.05 (or higher). If set to a
higher number and you don't have that version available (but
you use an older version), trashed (or deleted) files could
be the case.
Remember that versions between 1.13 and 2.00 are invalid (and
illegal) versions. Most of them were patched versions of the
original 1.13c/d, some of them even contained a virus.
Also there is a litte change in the way LHARC 1.13 will handle
recursed directories and the way LHA(RC) 2.05 will do such
work. Depending on this switch, MTA will use one of both
methods, so setting the option to the correct version is very
important if you use LHARC versions OTHER than 1.13.
Relate: None
Dest. : LZH
┌─────────────────────────────────────────────────────────────────────┐
│ PAKVersion xxx │
└─────────────────────────────────────────────────────────────────────┘
Usage : This parameter is optional. If you don't use this option, PAK
version 2.00 (2.10) is assumed. This option should only be
included in one (or both) of the following cases:
- You would like to see the correct version in the MTA screen;
- You work with the old GSArc program. In THIS special case
(running GSArc) you must include a '0' as version-number;
The number is the full version number without any point, so
version 2.00 must be entered as 200, 2.10 as 210 and so on;
Relate: None
Dest. : PAK
┌─────────────────────────────────────────────────────────────────────┐
│ ZIPVersion xxx │
└─────────────────────────────────────────────────────────────────────┘
Usage : This parameter is optional. If you don't use this option, ZIP
version 1.10 is assumed.
You MUST include this option when you are running with a lower
version of ZIP. MTA will so some special 1.10-alike features,
also 0.9x version have special options that MTA will use !!!!!
The number is the full version number without any point, so
version 0.92 must be entered as 092 (or 92), 1.10 as 110 and
so on;
Relate: None
Dest. : ZIP
┌─────────────────────────────────────────────────────────────────────┐
│ ZIPCompression [options] │
└─────────────────────────────────────────────────────────────────────┘
Usage : ZIPCompression is used to let MTA tell PKZIP which type of
compression to use. Depending on the version of PKWare's
ZIP-programs, these options can vary.
With [options] you code the current ZIP compression options
you would like to use.
PKZ 0.90 : In general use 'ZIPCompression -eb4 -ea4'
PKZ 0.92 : In general use 'ZIPCompression -ex'
PKZ 1.00 : In general use 'ZIPCompression -ex' or
'ZIPCompression -es'
PKZ 1.10 : In general use 'ZIPCompression -ex' but
you can make use of -ei to force imploding
for the special PKSFX Jr;
You must code the options just like you did with PKZIP !
Relate: ZIPVersion
Dest. : ZIP
│┌─────────────────────────────────────────────────────────────────────┐
││ ZOOCompression [options] │
│└─────────────────────────────────────────────────────────────────────┘
│Usage : With the ZOOCompression option, you can select to overrule
│ the ZOO default for compression on size. Use a value of
│ 'h' for compression on size (high compression).
│ You can also add multiple values like with the ZIPCompression
│ option but remember that most options in ZOO must be sticked
│ together and not contain a space.
│
│Relate: None
│Dest. : ZOO
┌─────────────────────────────────────────────────────────────────────┐
│ DWCCompression [options] │
└─────────────────────────────────────────────────────────────────────┘
Usage : With the DWCCompression option, you can select to overrule
the DWC default for compression on speed or size. Use a
value of 'y' for compression on speed, use 'z' for
compression on size (both values to be coded without
quotes). You can also add multiple values like with the
ZIPCompression option;
Relate: None
Dest. : DWC
┌─────────────────────────────────────────────────────────────────────┐
│ ARJCompression [options] │
└─────────────────────────────────────────────────────────────────────┘
Usage : With the ARJCompression option, you can select to overrule
the ARJ default for compression on speed or size. Use a value
of -m1 to -m4 for compression on size to speed. Also extra op-
tions (not implemented by MTA) can be added in the same way
as with the ZIPCompression option.
Relate: None
Dest. : ARJ
┌─────────────────────────────────────────────────────────────────────┐
│ OriginalARJName │
└─────────────────────────────────────────────────────────────────────┘
Usage : With this option included, MTA will look inside any ARJ file
before it starts converting it. If the name inside the archive
is different from the filename (ARJ stores the name of the
archive at creation-time), MTA will rename it back to that
original name. If the option is not included, MTA will not
change the name of the archive even if a difference is de-
tected.
The rename will be done BEFORE MTA starts with the conversion
of the file, so the target archive will have the new name
also.
Relate: None
Source: ARJ
┌─────────────────────────────────────────────────────────────────────┐
│ LZHCompression [options] │
└─────────────────────────────────────────────────────────────────────┘
Usage : With the LZHCompression option, you can select to overrule
the LZH default for compressions. You can use this option to
toggle the /A option and so on. So extra options (not imple-
mented by MTA) can be added in the same way as with the
ZIPCompression option.
Relate: None
Dest. : LZH
┌─────────────────────────────────────────────────────────────────────┐
│ PKLITECompression [options] │
└─────────────────────────────────────────────────────────────────────┘
Usage : With the PKLITECompression option, you can select to overrule
the PKLITE default for (de)compression of any EXE or COM file.
The usage of -b (create backup) and -n (no overlays) are the
obvious parameters you would like to use.
Extra options (not implemented by MTA) can be added in the same
way as with the ZIPCompression option.
Relate: None
Dest. : PKLITE
3.14.2 Statements that define the environment that MTA uses (paths)
────────────────────────────────────────────────────────────────────────
The following statements all define a part of the actual environment
that MTA.EXE will use. Included are statements that define the several
directories that MTA can use, the minimal requirements for memory and
space on the drives, the swapping functions and so on.
┌─────────────────────────────────────────────────────────────────────┐
│ TempPath [path] {min free bytes} │
└─────────────────────────────────────────────────────────────────────┘
Usage : This parameter is optional. If you supply this parameter, you
instruct MTA to pass parameters to the called (de)compressors
to use 'path' as their temporary work path. Most obvious is
the usage of a RAM-disk or EMS-disk for 'path'. Please supply
the full drive AND path, because MTA changes from and to
directories !
This option is only used for (de)compressors who have the
option to use a temporary path.
Mostly LHarc <tm> is bound to make trouble when the supplied
drive/path does not exist. There are also problems to expect
when there is too little space on the drive to contain LHarc's
temporary files.
By default MTA will look if there is 256K of free space on
the supplied drive. If there isn't, MTA will ignore the
TempPath option. If you want a lower or higher threshold, you
can supply a third parameter on the TempPath option. This
parameter has to contain the minimum number of free bytes on
the drive supplied in the second parameter. When you want to
ignore threshold testing, you supply a 0.
When you have an Environment Variable TEMP available (pointing
to a full directory-name), then MTA will use this directory if
there is NO TempPath option defined. The test on available
space is skipped in this case !!
If you supply the TempPath option AND a TEMP variable is pre-
sent in the environment table, then MTA will overrule the
value in the TEMP variable with the value in the TempPath
option and the (optional) test on space IS performed !
Relate: None
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ MTATempPath [path] │
└─────────────────────────────────────────────────────────────────────┘
Usage : This parameter is optional. Normally MTA creates its own working
directory under the current (startup) directory. In some cases
you don't want to use this option (f.i. you have a large RAM or
EMS disk, or your current directory name is very long).
MTA stores the UNCOMPRESSED files in his temporary directory,
so when you supply MTATempPath, please keep in mind that there
must be enough room on the supplied drive to hold all
uncompressed files in the largest compression-file ! MTA itself
will skip a conversion when [space available] / 2 <
[uncompressed space]. In other words when there isn't room
enough for twice the uncompressed size, MTA will skip.
When you do NOT supply MTATempPath, MTA creates a directory
with a 8 character long name, reflecting the current date and
time in HEX representation. When running as a child (see the
chapter about Compression-In-Compression) MTA creates paths
with the name $.
Please enter the full drive and path (not a relative one) to
this option, because MTA changes directories frequently. If
no drive is included, MTA assumes the current drive.
WARNING : The current version of DWC (A501) does NOT like to
see points in other directories than the LAST. F.i.
C:\ZIP.ZIP is your current path, when converting
MTA creates C:\ZIP.ZIP\[mtatemppath|ownpath]. DWC
does NOT like this and this can lead to serious
errors in MTA (error messages).
By default MTA will look if there is 256K of free space on
the supplied drive. If there isn't, MTA will abort at forehand.
If you want a lower or higher threshold, you can supply a
third parameter on the MTATempPath option. This parameter
has to contain the minimum number of free bytes on the drive
supplied in the second parameter. When you want to ignore
threshold testing, you supply a 0. This should be the default
because MTA does a test for space itself, but you can use the
threshold for other reasons;
Relate: None
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ MTAErrorPath [path] │
└─────────────────────────────────────────────────────────────────────┘
Usage : At last, some of the users will say. When the decompression
fails (CRC-error, not enough memory), MTA will normally put the
original file in the temporary directory. This is a directory
with a name like 1A345A76 (in fact it is the HEX-value of the
combined current-date and current-time). Sysop's hate to
collect all failed archives from these directories (when you
have to collect 4 or 5 you can imagine why).
MTA is able to move a failing archive to a directory with a
fixed name. In this case you must supply this statement with
a valid (and available) path as the second parameter. MTA
will put all archives that were not converted due to an error,
in this directory.
Relate: None
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ FDUTempPath [path] │
└─────────────────────────────────────────────────────────────────────┘
Usage : This parameter is mandatory when using the /D switch. When
working with diskettes (e.g. convert entire diskettes from one
method to another one), MTA makes usage of two special unique
directories (supplied in FDUTempPath and FDUTrashPath).
Read the chapter about the diskette option.
Please assign full drive and path names to this option. The
first time MTA run's, it creates the directory and leaves it
hat way for the following run's. You may also assign a already
existing path. If you do not include a drive, MTA will add the
current drive to the supplied path.
Relate: FDUTrashPath
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ FDUTrashPath [path] │
└─────────────────────────────────────────────────────────────────────┘
Usage : This parameter is mandatory when using the /D switch.
The FDUTrashPath contains all files who could not be moved
back to diskettes because of a lack of space.
Read the chapter about the diskette option.
Please assign full drive and path names to this option. The
first time MTA run's, it creates the directory and leaves it
hat way for the following run's. You may also assign a already
existing path. If you do not include a drive, MTA will add the
current drive to the supplied path.
Relate: FDUTempPath
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ ITSPath [path] │
└─────────────────────────────────────────────────────────────────────┘
Usage : When you use MTA in combination with my product ITS (version
1.06 and higher), you must tell MTA where to find the
semaphore file that ITS maintains. This can be done with the
ITSPath option.
If it is left out, MTA will not be ITS-aware. If you include
the valid path to ITS.SPH (like you did in ITSCFG), MTA will
include ITS-awareness (see chapter on ITS).
Relate: None
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ MoveToDir [path] │
└─────────────────────────────────────────────────────────────────────┘
Usage : This parameter is optional. You can direct MTA to move all
converted files to another path (option is only valid when
NOT using /D).
Please supply full drive and path names to this option !
There is one special format for the MoveToDir option. This
is the case when you are combining this option with the /D
command-line switch (diskette support).
When using the combination /D with MoveToDir (or /M[path])
MTA will get all files from the source diskette drive,
convert them to the new archive-system and move them back to
the drive (and path) supplied by /M or MoveToDir. This makes
it easy to convert from diskettes in (lets say) drive A: (lets
say these are 360Kb diskettes) to drive B: (lets say these are
1.44Mb diskettes). You can even convert them to a subdirectory
in the target drive.
WARNING ! When you use MoveToDir as a normal option, but now
and then you use MTA to convert diskettes then please remember
to overrule the MoveToDir option by adding /M (without drive
and path) to the command-line, otherwise your diskette files
(and those in the trashcan) will be moved to the wrong place.
MTA will give a warning when you use /M[path] or MoveToDir
and /D together. You can interrupt MTA's functions at once
by hitting ESC when the message is flashing on the screen.
WARNING: When you use MoveToDir in conjunction with the
ExitAfterCompression option you have to know the
following extra's:
- When you create an extra file in the exit with
the extension .COM or .EXE and in the same
directory as the original compressed file, MoveToDir
moves these files also. When a name-like file
already exist in the MoveToDir target directory, MTA
gives you a warning and leaves the file where it
was. This does not go for the original compressed
file !
Normally this would not be a problem but when you
create such file with LHARC.EXE (1.12b) as the
result of the creation of a Self-Extraction-File,
LHarc.EXE asks you 'Overwrite [Y/N]'. This would
be very nasty when running unattended ! Please
make a check for the target-file before LHARC
creates the SFX-file !
- When you delete the original compression file in
the exit, MTA will 'see' this and take no further
actions;
When you are running 4Dos <tm> and your original files contain
a description in the 4Dos description file, MTA will use 4DOS's
MOVE command to move any files (if MTA has detected a full 4DOS
environment and the Not4DosAware option is set to off). This
will cause any descriptions (added with 4DOS) to be carried
along to the new directory.
Relate: Not4DosAware
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ FreeMemory nnnnnn │
└─────────────────────────────────────────────────────────────────────┘
Usage : Most BBS SysOp's (author included) tend to use programs under
a child (shell) process of their running BBS or other programs.
MTA consumes a lot of memory (around 128k). This is needed for
all its special options which are many (as you have already
seen). The errors MTA creates when a shelled (de)compressor
abort due to memory shortage are nasty to work away (empty
the temporary directory and its optional trees, deleting this
directories and so on).
When MTA starts, it looks for a reasonable number of free
bytes to work with, after MTA has loaded and created ALL its
own structures. Normally this would be 256K allowing you to
run every implemented (de)compressor.
You can alter this number of bytes.
You could decrease it when:
- You don't use DWC to around 190K
- You don't use ZIP to around 170K
You must increase it when:
- Using large shells in EXITBeforeFill, ExitAfterFill or
ExitAfterCompress;
With the optional FreeMemory option, you can set memory
requirements to your own calculated number of bytes. Please
observe that in most cases you have to experiment with the
value.
The primary usage of the memory requirement test is to
warn you (with a premature abort) when you are running in
a child (shell) process.
When you want to ignore the test, set FreeMemory with a
very large number of bytes.
Relate: None
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ RunTime [seconds] │
└─────────────────────────────────────────────────────────────────────┘
Usage : This option can instruct MTA to run for a maximum number of
seconds. This could come in handy when you want to include
MTA in a BBS event, but also normal users can benefit of this
option.
The number of seconds can go from 0 (same as leaving out the
option) to 2147483647 (same a eternal). You have to keep in
mind that the actual time MTA takes can be longer than the
number of supplied seconds. MTA checks this option after
every converted file (so at least 1 files is converted). If
there is 1 second left, the next file is converted. So MTA
can run as long as RunTime-1+(time for the last compression
in seconds) seconds !
MTA displays the remaining seconds. If there are more than
5 minutes left the display is green, turns to yellow when
there is between 2 and 5 minutes left, turns to red when
there are 2 minutes or less left. When time is up, MTA does
a 'clean' abort.
RunTime does not function in a MTA-Child process nor when
you are converting a diskette (/D option).
Relate: None
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ Not4DosAware │
└─────────────────────────────────────────────────────────────────────┘
Usage : MTA will use some 4DOS instructions along the conversion-path.
This will only be the case when:
- MTA detects 4DOS in the machine (INT $2F combination);
- MTA detects a COMSPEC value with 4DOS somewhere inside
the name of the program (4DOS.COM, 4DOS88.EXE or 4DOS286.EXE)
belonging to this environment variable;
If you don't want to use 4DOS instructions at all (look into
the chapter about 4DOS), you must code the Not4DosAware op-
tion, otherwise MTA will use them,
Relate: MoveToPath
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ ForceCGA │
└─────────────────────────────────────────────────────────────────────┘
Usage : This option should be used when you have trouble with the
video while the (de)compressors are running. The option
has nothing to do with YOUR screen mode, more with the type
of display MTA will select to display your window.
Problems will look like a shell with only characters on the
first position of every line and garbage....
Relate: None
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ VideoMode [mode] │
└─────────────────────────────────────────────────────────────────────┘
Usage : This option can be used on systems that have an EGA or VGA
card installed that supports alternate text-modes like 80x43,
132x60 and so on. MTA will adjust itself to both length and
width of the screen. With a width that is bigger than 110
bytes, MTA will also use a alternate display.
MTA can change the videomode (text-mode) by itself when you
supply the correct value with [mode]. Look into your video-
card's manual to find the correct video-mode (it is usually
in hex, with VideoMode you must supply the DECIMAL form) for
a valid text-(NOT GRAPHICS)-mode like 132x60. Because of the
many different implementation of the videomodes on different
cards, it is up to you to supply the correct mode. When you
leave out this option, MTA will use (and stay) in the current
mode (this can already be an enhanced text-mode).
After MTA finishes the process, the original videomode at the
start of MTA is restored.
Relate: None
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ StowBuffer [bytes] │
└─────────────────────────────────────────────────────────────────────┘
Usage : MTA uses some special options inside the little shell where
the compressors run. For this option, MTA has to reserve some
bytes in memory. This block of memory must be large enough to
contain ALL displayed output inside this shell for one run.
Usually 32768 bytes is enough, but when you have extreme large
archives and you use a compressor that produces width lines
(many) like ZIP when working recursive, this could not be
enough. In these special cases you can enlarge the buffer up
to 65534 bytes in length, but this means you 'consume' an
extra 32K when the shell is called.
The supplied value must be enough for ONE (the biggest) call.
When MTA gets control again, the buffer is cleared and can
be used again. Normally you don't have to use this option !
Relate: None
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ SubstDrive [array of drives] │
└─────────────────────────────────────────────────────────────────────┘
Usage : Please read chapter 3.29 about substituted drives before using
this option. If you use the option you must only supply a
drive you want to use as a temporary substituted drive.
With this option you specify 1 or more (if you run more than
one MTA-task at a time in network or multitasking environments)
drive-letters that MTA can use as a SUBSTituted drive. Details
on how to select drives are also given in chapter 3.29. You
must supply multiple drives as one array (without spaces) of
letters. For example:
To use A: as the substituted drive : SubstDrive A
To use E:, F: and G: as the substituted drives: SubstDrive EFG
(only needed when you run multiple copies of MTA)
Please also read CAREFULLY chapter 3.30 (Concurrent MTA's)
for a FULL understanding on how MTA assigns substituted
drives in concurrent environments.
Relate: None
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ ExtendedTesting │
└─────────────────────────────────────────────────────────────────────┘
Usage : Look into chapter 4.08 for details. When set to on, MTA will
perform extended testing after the decompression of any file.
The drawback is a (small) loss in performance.
Relate: None
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ ShareWait [seconds] │
└─────────────────────────────────────────────────────────────────────┘
Usage : This option is used to overcome problems with a so called
'deadlock'. A deadlock can arise from a sharing violation.
When a task locks a file that MTA needs and this lock will
stay for a long period, then MTA will also wait as long as
the file is locked. The ShareWait option will define a maximum
to the period MTA will wait. By default MTA will wait 300
seconds (5 minutes). If this is not enough (or too much) then
you can define any other period (in seconds) with this option.
ShareWait is ONLY needed in a multitasking/network environment
and has no meaning when SHARE is not loaded.
Relate: None
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ NoMouse {Window} │
└─────────────────────────────────────────────────────────────────────┘
Usage : If the behavior of the mouse-routines give you pain in the
head, you can shut off the mouse permanent with the NoMouse
option. There is also an in-between way. When you use the
optional parameter 'Window' (without the quotes), MTA will
shut off the mouse in ANY DOS-window, so also the little
window under MTA's main screen, used for the (de)compression.
Sometimes this is needed, when the system can not handle the
interrupt-routine that stays active while MTA calls the
(de)compression programs. On my own system, I have found no
problems at all, but there are reports of hanging programs
while the mouse is active in the (de)compression window. In
that case, use 'Nomouse Window'. This means you have still
control over the mouse in the tag-menu and while MTA is
doing something of its own.
This option only has a meaning when you have loaded a mouse
driver and attached a mouse. MTA forces NOMOUSE when you run
MTA in a screen-mode other than 80*25. This is because of
the fact that many third-party vendor mouse-drivers can not
work correctly with larger screen-modes.
Relate: None
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ AltDisplay │
└─────────────────────────────────────────────────────────────────────┘
Usage : MTA can display either of two screens. A screen with static
run-time options (default) or a dynamic screen with a list
of files to go. You can toggle this screen while MTA is
running. Use the 'T' key to toggle between dynamic and
static display.
If you want MTA to start (by default) with the dynamic screen,
you must include the AltDisplay option. You can still toggle
screens tough. Let it be clear that the any MTA-child (called
with arc-in-arc files) will start with the default option
(so static or dynamic when AltDisplay is included in MTA.CTL)
and NOT the state of the screen its MTA-parent had);
Relate: None
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ NoSwap │
└─────────────────────────────────────────────────────────────────────┘
Usage : Normally MTA will use swapping when Arc-In-Arc files are
converted. If you don't want to use swapping, include this
option. When swapping is set to OFF (NoSwap) only 1 or 2
levels of Arc-in-Arc files can be converted.
MTA will report an error when you include NoSwap and you have
set one or more archivers to SWAP (third option in xxxPath
options). Then you want to swap any archiver, you MUST use
MTA's swapping feature and this statement must be left out !
Relate: SwapPath, xxxPath
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ SwapPath [path] │
└─────────────────────────────────────────────────────────────────────┘
Usage : When NoSwap IS NOT set, you can use the SwapPath option to
let MTA know where to place the swap-files (if no EMS is
available, or EMS if fully used).
By default MTA will use the current directory. The files
(if created) have SYSTEM and HIDDEN attributes set AND will
stay OPEN while swapping is done. Read the chapter on swapping
for more details !
Never delete these files inside the MTA-shell (a crash
will occur), only when MTA is finished (or did hang up your
machine). Normally MTA will delete this file itself. Every
file is around 150.000 bytes in length;
Relate: NoSwap
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ WarningTime [cycles] │
└─────────────────────────────────────────────────────────────────────┘
Usage : This parameter is optional and controls MTA's time to display
a warning message. When running unattended (a BBS for example)
long waiting times are not so handy. When running manually they
could be handy.
By default MTA sets the WarningTime to 20 cycles (every cycle
is visualized on the screen). This comes to around 10 seconds.
You can interrupt every message by pressing any key.
When the default is to long for you, you can reduce the value,
when you want more time, increase it. Values from 0 to 65535
are valid.
Value 0 means that MTA will display no warning messages at all.
Relate: None
Dest. : All
3.14.3 Statements that define the logging
────────────────────────────────────────────────────────────────────────
MTA can log almost anything. The following statements define the type
of logging (if any) for the several actions and the actual format of
the logged records.
┌─────────────────────────────────────────────────────────────────────┐
│ LogPath [path] │
│ LogPath [full path & filename] │
└─────────────────────────────────────────────────────────────────────┘
Usage : When you want MTA to create a log, you MUST include the path
to the logging file MTA will create. If this option is NOT
present, no log is created (the old NoLog option is deleted).
You must supply a valid path (please with drive). MTA will
create MTA.LOG inside this directory ! MTL will use this
option to read the MTA.LOG file and to create the MTA.NEG
file in this directory.
If you want a log with a name of your own, or you want MTA
to add its log-records to an already present log-file (this
could be the log-file of a Mailer or a BBS program), you
can use the second option. In this case you must supply
not only the path, but also the name of the log-file.
If the log-file is not present, MTA will create it, otherwise
MTA will append to this file.
With the LogStyleFormat option, you can create your own log-file
format, so appending to a Mailer-log or BBS-log could be done
in a neat way !
LogPath (second option), ErrorlogPath (second option) and
both PasswordlistPath options can all point to the same
log ! MTA will open and close the log every time a record
must be written !
Relate: LogStyleFormat
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ ErrorLogPath [path] │
│ ErrorLogPath [full path & filename] │
└─────────────────────────────────────────────────────────────────────┘
Usage : When you want MTA to create an error log, you MUST include
the path to the error-log file MTA will create. The error
log is needed in most cases, because MTA (from 10.01 and
up) will go on converting even when errors are detected.
This is done so BBS's can run MTA in an event.
MTA will also display all errors on screen, but it would be
handy to let MTA create the error-log so you can do some
housekeeping after MTA is ended.
If ErrorLogPath is NOT present, MTA WILL not create an
error-log.
If you want a log with a name of your own, or you want MTA
to add its log-records to an already present log-file (this
could be the log-file of a Mailer or a BBS program), you
can use the second option. In this case you must supply
not only the path, but also the name of the log-file.
If the log-file is not present, MTA will create it, otherwise
MTA will append to this file.
With the LogStyleFormat option, you can create your own
log-file format, so appending to a Mailer-log or BBS-log
could be done in a neat way !
LogPath (second option), ErrorlogPath (second option) and
both PasswordlistPath options can all point to the same
log ! MTA will open and close the log every time a record
must be written !
Relate: LogStyleFormat
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ PasswordListPath [path] │
│ PasswordListPath [full path & filename] │
└─────────────────────────────────────────────────────────────────────┘
Usage : This option is now obsolete. You should rename it in MTA.CTL
to RandomPasswordlistPath.
Relate: None
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ RandomPasswordListPath [path] │
│ RandomPasswordListPath [full path & filename] │
└─────────────────────────────────────────────────────────────────────┘
Usage : When you are going to use the /OP@ option (generation of
random encryption passwords) or you use /OPpasword (the
generation of encrypted files with a standard password), you
must (or can, in case of standard passwords) include this
option. MTA will create log-records into MTA.PWD (first
option) with filenames and used passwords for the encryption.
It is STRONGLY advised to use this log so you can read the
used passwords in a later stage !!!!!
When you use /OP@ without RandomPasswordListPath, MTA will
force MTA.PWD to be written in the CURRENT directory. A log
must be created in this case, otherwise you can never extract
the files again because a random password is used for the
encryption !
If you want a log with a name of your own, or you want MTA
to add its log-records to an already present log-file (this
could be the log-file of a Mailer or a BBS program), you
can use the second option. In this case you must supply
not only the path, but also the name of the log-file.
If the log-file is not present, MTA will create it, otherwise
MTA will append to this file.
With the LogStyleFormat option, you can create your own
log-file format, so appending to a Mailer-log or BBS-log
could be done in a neat way !
LogPath (second option), ErrorlogPath (second option) and
both PasswordlistPath options can all point to the same
log ! MTA will open and close the log every time a record
must be written !
Relate: NormalPasswordListPath, LogStyleFormat
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ NormalPasswordListPath [path] │
│ NormalPasswordListPath [full path & filename] │
└─────────────────────────────────────────────────────────────────────┘
Usage : The description for this option is the same as for the previous
RandomPasswordListPath, but in this (optional) log, MTA will
log all files you have encrypted with the normal /OPpassword
option and not the /OP@ random passwords.
If you only specify a name, MTA will generate a MTA.NPW file
in that directory.
This option is NOT forced. If you use /OPpassword and this
option is NOT set, a log is NOT created.
Relate: RandomPasswordListPath, LogStyleFormat
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ LogStyleFormat [string] │
└─────────────────────────────────────────────────────────────────────┘
Usage : MTA creates several log-records under different conditions.
You can use the standard log, but Sysop's hate all these
different log-files (in general). MTA can create customized
log-records. With these options, you can instruct MTA to
create records that look the same as the records from your
mailer or BBS program. The option LogStyleFormat and the
LogDateFormat/LogTimeFormat combination can be used to define
the style of the log-records MTA will create for ALL three
log-files (normal log-file, error log-file and password-list
log-file). These options are implemented with the idea that
different log-styles only vary at the start of the records
and not at the end.
The LogStyleFormat defines the 'structure' of the log-record
header. The format is free but with three special cases:
- Blanks must be replaced by underscore characters '_';
- The part of the record that contains the date must be
defined with %D (if a date is wanted);
- The part of the record that contains the time must be
defined with %T (if a time is wanted);
- Any extra CRLF combinations (to create a separation
line) must be defined with ^M;
An example (also read LogDateFormat and LogTimeFormat for
a description of the time and date functions):
You want to create records that look like this:
+ 6 Jan 1990 2:00p The start of the log
The 'The start of the log' part is constructed by MTA itself,
so you have only to define the header. This is done as follows:
LogStyleFormat +_%D__%T___ (The _ character replaces
a blank)
LogDateFormat DD_nnn_yyyy
LogTimeFormat HH:mmt
%D and %T are replaced by MTA with the date and time formats
as supplied in LogDateFormat and LogTimeFormat. MTA.CTL
contains a number of examples for the various BBS programs
and Mailer programs.
Relate: LogStartStyleFormat, LogDateFormat, LogTimeFormat
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ LogStartStyleFormat [string] │
└─────────────────────────────────────────────────────────────────────┘
Usage : This is an additional option you can use along with the pre-
vious LogStyleFormat option. Some types of log use a special
format where the actual date is put into an extra record (with-
out any further meaning than logging the date). MTA can create
such a record for you. MTA will put the record with the format
you supply in LogStartStyleFormat into the log as the first and
only record for THIS run of MTA. If MTA stops and is started
again, a new record of this type is written.
A type of log with this format is found in the FrontDoor <tm>
mailer.
The options you can use in this logstyle-format are the same
as with the LogStyleFormat option.
Relate: LogStyleFormat, LogDateFormat, LogTimeFormat
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ LogDateFormat [string] │
└─────────────────────────────────────────────────────────────────────┘
Usage : LogDateFormat is used to define the 'date part' (actually the
%D) in the LogStyleFormat option. MTA (in fact some nifty
routines from TurboPower, credit to those who should have
the credits) has knowledge of a big number of options to
define the date. The [string] must be composed of a number
special letters and (optionally) the separators and spaces
between the various parts of actual date. In fact [string]
should be a picture mask. The following characters have a
meaning in the mask:
m or M The month (upper case will create leading a
leading space as replacement for a zero)
d or D The day (upper case will create leading a
leading space as replacement for a zero)
y or Y The year (upper case will create leading a
leading space as replacement for a zero)
n or N The name of the month (upper case will force
an upper case name);
w or W The name of the day (upper case will force
an upper case name);
Each character must be repeated as many times as you want
digits or letters. So '90' for the year 1990 is defined
with yy and the full year is defined with yyyy. Some
examples:
mm/dd/yy 01-31-90
MM/dd/yy 1-31-90
dd/mm/yyyy 31-01-1990
dd/mm/yyyy 31-01-1990
dd NNN yyyy 31 JAN 1990
dd nnn yy 31 Jan 1990
dd n yyyy 31 J 1990
www dd nnn yyyy Sun 31 Jan 1990
As you can see, lots to experiment with.
Relate: LogStyleFormat, LogTimeFormat
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ LogTimeFormat [string] │
└─────────────────────────────────────────────────────────────────────┘
Usage : LogTimeFormat is used to define the 'time part' (actually the
%T) in the LogStyleFormat option. MTA (in fact some nifty
routines from TurboPower, credit to those who should have
the credits) has knowledge of a big number of options to
define the time. The [string] must be composed of a number
special letters and (optionally) the separators and spaces
between the various parts of actual date. In fact [string]
should be a picture mask. The following characters have a
meaning in the mask:
h or H The hour (upper case will create leading a
leading space as replacement for a zero)
m or M The minute (upper case will create leading a
leading space as replacement for a zero)
s or S The seconds (upper case will create leading a
leading space as replacement for a zero)
t or T 'p'/'P' (in PM) or 'a'/'A' (in AM)
e or E 'm'/'M' (in PM or AM)
Each character must be repeated as many times as you want
digits or letters. For h/H/m/M/s/S this should be two digits
to be useful. Some examples:
hh:mm 14:00
hh:mmt 02:00p
HH:mmte 2:00pm
HH:mm:ss 14:00:45
hh:mm:ss 14:00:45
Again, as you can see, lots to experiment with.
Relate: LogStyleFormat, LogDateFormat
Dest. : All
3.14.4 Statements that define the selection of files
────────────────────────────────────────────────────────────────────────
MTA contains several statements that define where and what to search
for files that must be converted.
┌─────────────────────────────────────────────────────────────────────┐
│ DefaultPath [path] {move_to_path} │
└─────────────────────────────────────────────────────────────────────┘
Usage : You can instruct MTA to work (by default) on a standard
directory or on a list of standard directories. You can
include up to 255 DefaultPath options. MTA will process
all selected files (depending on supplied mask) in all
these directories. MTA will only abort if the first
supplied directory does not exist, otherwise MTA will go
on searching the next directory.
If you do not supply a DefaultPath option, MTA will take
the current directory or the directory supplied in the /W
command-line switch. The working of this switch has influence
on the working of any present DefaultPath option.
After MTA is done, MTA will switch back to the original
(current) directory.
You must include drive and the complete (not relative) di-
rectory name in [path].
Optionally, you can add a directory as the second parameter
of this option. If {move_to_path} is present, MTA will move
all files in the belonging Defaultpath directory to the di-
recory you supplied overhere. If you use the MoveToPath
option or the /W option, then you will see that that option
overrules the directory(ies) you supplied overhere, so be
sure to use either the combination of two directories in
the DefaultPath option OR the MoveToPath option (/W).
If the full-screen selection is used, MTA will only select
the first path all other paths are skipped ! All DefaultPath
options become obsolete when you include a directory in one
of the file-masks on the command-line.
Relate: QBBSPaths, RAPaths
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ QBBSPaths [full name of FLSEARCH.CTL alike file] │
└─────────────────────────────────────────────────────────────────────┘
Usage : When you run MTA in a QuickBBS environment and you don't want
to supply all the area's (paths) MTA must work on, then you can
supply this option. The additional parameter must point to
a FLSEARCH.CTL alike file (or the FLSEARCH.CTL itself, when you
did not rename it). You MUST include drive and path.
MTA will work on ALL paths that are supplied in this file. If
you want some extra paths, then add some extra DefaultPath
options to MTA.CTL. All paths from the DefaultPath option,
the QBBSPaths option and the RAPaths option are merged together
by MTA.
Relate: DefaultPath, RAPaths
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ RAPaths [path to FILES.RA] │
└─────────────────────────────────────────────────────────────────────┘
Usage : When you run MTA in a Remote Access environment and you don't
want to supply all the area's (paths) MTA must work on, then
you can supply this option. The additional parameter must be
the full drive and path to the FILES.RA file.
MTA will work on ALL paths that are supplied in FILES.RA. If
you want some extra paths, then add some extra DefaultPath
options to MTA.CTL. All paths from the DefaultPath option,
the QBBSPaths option and the RAPaths option are merged together
by MTA.
Relate: DefaultPath, QBBSPaths
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ RA0 or RA1 │
└─────────────────────────────────────────────────────────────────────┘
Usage : When you run MTA with the RAPaths option, MTA will assume a
layout of FILES.RA for Remote Access 0.04 and lower. Newer
versions of Remote Access will have a different structure
for this file. If you are running MTA with Remote Access 1.xx
(or higher) you must include RA1 into MTA.CTL. RA0 is the
default and causes MTA to use the old FILES.RA structure.
Relate: RAPaths
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ DoNot [mask] │
└─────────────────────────────────────────────────────────────────────┘
Usage : This parameter is optional. You can direct MTA to exclude
some files at all. This option could come in handy when
you run a BBS and you want to convert every file to ZIP
(example, works with all extensions), but you don't want
to convert incoming ZIP files.
I should advise NOT TO USE this option, because:
- When Reconverting the archives, MTA can initiate a virus
scan, if you exclude some incoming files (mostly because
of time I think), this test is not done;
- Some compressors are capable of compressing files depending
on size or speed. When you want the smallest files and the
incoming file is compressed on speed, you loose some bytes
because MTA does not do a re-compress (based on size);
Of course I can think of other reasons to use the DoNot option.
You can instruct MTA to exclude some special files or any type
of self extracting (SFX) .COM or .EXE file, you pick it out...
I would like you to read the chapter on the NoMarked and
MarkString options. This also could help you a lot when you
only want to re-compress incoming files only once !!!!!!!!!
You must supply any valid file-mask (wildcards allowed) in
every DoNot option. You can include up to 255 DoNot options.
This should be enough to tackle all your problems. As said,
you can include any valid wildcard-mask like *.* (I should
not include this one), *.ZIP, A??.ARC, Z2-DIFF.* and so on.
Like all DISP products of my hand, I included another
wildcard (=) character. With this character it is possible
to do a 'shifted test'. DoNot =READ excludes all files that
contain the string READ (like READme.not, doREAD.ME and so
on). The string must match, so =READ will not select RE.AD.
When using the /D and AllDisketteFiles options together,
files are NEVER excluded. This is also the case when
MTA does call to itself (compressed-in-compressed files).
Relate: None
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ NoMarked │
└─────────────────────────────────────────────────────────────────────┘
Usage : This is a powerful option for BBS usage and for users with
large temporary directories with compressed files.
When you supply the NoMarked option, you instruct MTA to do
the following:
- When a file is selected, MTA looks if its own mark is
present in the last 20 bytes of the compressed file.
If so, MTA will ignore the file;
- After MTA has converted a file, it will put a special
marker to the tail of each compressed file, so the next
time MTA is executed with the NoMarked option, the file
will be ignored.
MTA appends/looks for a marker of 20 bytes at the end of
the compressed file.
This marker has the following format:
- 3 binary zeroes;
- the word MTA;
- 14 bytes of private information, by default 'Your ID here !';
All compressors have been tested with this extra information
appended and they seem to have no trouble with it. That is not
so strange if you know that some communication protocols will
append binary zeroes to a file, when transferred, to fill a
complete transfer block.
A special word about the 14 bytes of information. If everyone
should use MTA's default and should download a file, converted
with MTA/NoMarked and would like to convert this file again
with MTA/NoMarked, the file would be ignored. It is advised
to set your own marker with the MarkString option to something
more or less private. BBS's could enter their Node/Net/Point
number or the name of the SysOp or something like Ghostbuster,
Snoopy or whatsoever.
NoMarked has no meaning when using /D with the AllFiles option.
The mark is not set when the MoveToDir option (/M) is used.
Afterwards you can ZAP the appended marks with the supplied
MTR.EXE utility.
Relate: MoveToDir, /D, MarkString
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ MarkHeader [string] │
└─────────────────────────────────────────────────────────────────────┘
Usage : Normally MTA uses a combination of three binary zeroes and the
word MTA as the start of a mark. This header, along with the
default or supplied MarkString, will be appended to all
processed files when NoMarked (or /MAR) is set to ON. Anyone
is able to detect MTA's conversion when such a file is received
because of the combination in the header.
If you want, for what reason you may think of, receivers not
to be able to detect MTA's 'touch' in your archive, you can
supply a header of your own. This header must be 6 bytes in
length or will be 'stretched' to 6 bytes when you supply less
than 6 bytes.
Please be careful with this option ! If you supply a non
unique header, MTA can fail to detect the mark-string, also
MTA could detect marked files that , in fact, are not marked
at all.
Relate: NoMarked, MarkString
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ MarkString [string] │
└─────────────────────────────────────────────────────────────────────┘
Usage : This option is used in combination with the NoMarked option.
Even if you do not use the NoMarked option, it is advised to
set the MarkString to something private in case you would
like the /MAR option in a later stage.
MarkString is used to set the 14 bytes of private information
that is part of the 20 bytes appended data when NoMarked is
active.
The [string] should contain no blanks. You could use underscore
characters to separate portions of the information.
The obvious thing to do is to use your name for the string,
or (in case of BBS) the Zone:Net/Node.Point combination. But
you can also use an alias like Ghostbuster, Snoopy or something
like that. If you have set the MarkString, you should not have
to change it again. When you change the string MTA is unable
to detect files as marked when they contain the previous string.
Relate: NoMarked, MarkHeader
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ UnMark │
└─────────────────────────────────────────────────────────────────────┘
Usage : This option can be used to let MTA strip (your own!!) mark
string from any archive before decompression. Look into the
details in the LHARC chapter.
Relate: NoMarked, MarkHeader
Dest. : All
│┌─────────────────────────────────────────────────────────────────────┐
││ DelOldFiles [mm-yyyy] {option} │
│└─────────────────────────────────────────────────────────────────────┘
│Usage : A very powerfull option is the DelOldFiles option. If you want
│ a filer on files that are too old to keep, you can use this
│ option. [mm-yyyy] will contain the month of a certain year
│ that is marked as the oldest month for which you will KEEP
│ files. All files before mm-yyyy are manipulated by MTA in
│ the following way:
│
│ - They are deleted if DelOldPath is NOT present;
│ - They are moved to another location when DelOldPath IS
│ present;
│
│ In BOTH cases MTA will NOT do any conversion of the file !
│
│ {option} can have the following values:
│ none : MTA will sound the bell and will give a warning for
│ WaitTime cycles. After that manipulation will be
│ done;
│ nomsg: As above but no message and no beep;
│ ask : MTA will ask if you want to manipulate the file when
│ it is too old or NOT. If you enter 'Y', MTA will move
│ or delete the file, if you give 'N' MTA will start a
│ normal conversion to the new archive system. This op-
│ tion can NOT be used when you want to run MTA unatten-
│ ded;
│
│Relate: DelOldPath
│Dest. : All
│
│
│┌─────────────────────────────────────────────────────────────────────┐
││ DelOldPath [path] │
│└─────────────────────────────────────────────────────────────────────┘
│Usage : If DelOldPath is NOT present and DelOldFiles is set, MTA will
│ DELETE files that are to old. If DelOldPath is present, MTA
│ will move these files to [path].
│ DelOldPath without DelOldFiles has no meaning but is not mar-
│ ked as invalid. [path] must be a valid drive and directory.
│
│Relate: DelOldFiles
│Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ SFXFiles │
└─────────────────────────────────────────────────────────────────────┘
Usage : The most powerful but also most tricky option is last. The
SFXFiles option is optional (thank god).
When you include SFXFiles, MTA will try to read every file
(if the filename is validated to the command-line filespecs)
and first test if it's a normal compression file. If it is
NOT, it will read the file again (up to 32K of every file)
and test if the file is a ARC (SEA/NoGate/PKWare), PAK, ZIP,
LHarc or Larc compatible SFX-file (self extraction .EXE or
.COM file). If it is, it will try to convert the file to a
temporary file and then convert it to the compression system
you have supplied.
There can occur numerous errors in this test/conversion, but
on my system 99.99% of all SFX-files are done correctly. If
the SFX is not correct, MTA will go on (or abort depending
on the error) but nothing happens with your SFX-file. The
change to get 'Compression' or 'Decompression' errors is
somewhat bigger.
I should suggest to you, to use the option with care, of
to use the /SFX switch on the command-line as a temporary
replacement.
Relate: None
Dest. : All
3.14.5 Statements that define the resulting files
────────────────────────────────────────────────────────────────────────
MTA includes a number of options that will deside what will happen to
the resulting converted files. These include optimizing the files, the
comments to add and so on.
┌─────────────────────────────────────────────────────────────────────┐
│ IncludeFile [drive:path\filename] [newname] {CF$} │
└─────────────────────────────────────────────────────────────────────┘
Usage : This parameter is optional. You can direct MTA to include
the supplied file (second parameter) into every converted
compression-file. Inside the compressed file this file has
the same name or [newname] when you supply the third
parameter (must only be a filename without path and drive).
This option comes in handy when you want to include a file
with information about yourself (or your BBS) into any
uploaded file converted with MTA.
LHarc (LARC) can work with special files like ! and the
AUTOLARC.BAT file, this option can create them for you !
MTA copies the file to its own special temporary path every
time a compressed file is created. The original file is left
intact. You MUST supply a complete path to the original
filename.
There can be up to 255 IncludeFile options in the MTA.CTL. All
files will be included in EVERY converted extension. When you
leave out the option, nothing is included (of course !).
If you add CF$ as the last parameter, you let MTA know that
the file is compressed. MTA will then re-compress the file
when creating the new compression file. In this way, your
includefile can have a transparent format.
Relate: ExcludeFile
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ ExcludeFile [filename] │
└─────────────────────────────────────────────────────────────────────┘
Usage : This parameter is optional. You can direct MTA to exclude
the supplied file (second parameter) from every converted
compression-file.
This comes in handy when your favorite BBS includes files
like ! and U_read.me in the files he supplies (sorry for the
bad joke R.).
LHarc (LARC) can work with special files like ! and the
AUTOLARC.BAT file, this option can exclude them for you !
There can be up to 255 ExcludeFile options in the MTA.CTL. All
files will be excluded in EVERY converted extension. When you
leave out the option, nothing is excluded (of course !).
When you are a BBS and you get uploaded files with files
like '!' or 'TheGost.BBS' and you want to convert the files
for YOUR BBS, you should know that MTA first excludes files
and then includes the new ones. So in the case of the '!'
file you could create a MTA.CTL with:
ExcludeFile !
IncludeFile C:\FILES\MY.! !
and the ! is first excluded and then the MY.! is included
as ! (so its a replace).
Relate: IncludeFile
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ TouchLow │
└─────────────────────────────────────────────────────────────────────┘
Usage : This parameter is optional and controls MTA's touching system.
When used, MTA touches (resets the compressed file's time/date
stamp) to the lowest date of any file inside the compressed
file. See the chapter on this feature.
Relate: TouchCur, TouchHig
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ TouchHig │
└─────────────────────────────────────────────────────────────────────┘
Usage : This parameter is optional and controls MTA's touching system.
When used, MTA touches (resets the compressed file's time/date
stamp) to the highest date of any file inside the compressed
file. See the chapter on this feature.
Relate: TouchCur, TouchLow
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ TouchCur │
└─────────────────────────────────────────────────────────────────────┘
Usage : This parameter is optional and controls MTA's touching system.
When used, MTA touches (resets the compressed file's time/date
stamp) to the current date. See the chapter on this feature.
Relate: TouchLow, TouchHig
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ IgnoreTimeComponent │
└─────────────────────────────────────────────────────────────────────┘
Usage : This parameter belongs to the MTA touching system. When you
want to ignore the time on date/time stamps, you must include
this option. MTA will use 00:00:00 as the time on all files
when testing. Also the compressed file is touched as 00:00:00.
Relate: TouchLow, TouchHig, TouchCur
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ AcceptHighDate │
└─────────────────────────────────────────────────────────────────────┘
Usage : This parameter belongs to the MTA touching system. When you
want to include dates that are higher than the current PC's
system date/time, you must include this option. This means
that a compressed file with a file inside with the date
01-07-98 will actually get the date 01-07-98 even when the
current date is lower.
Relate: TouchLow, TouchHig, TouchCur
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ NoArcInArc │
└─────────────────────────────────────────────────────────────────────┘
Usage : With this option you can instruct MTA NOT to convert compressed
files INSIDE the compressed file. There could be cases where
you want to use this option. In this case no shelling of a new
MTA.EXE is done.
Relate: None
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ OptimizeOnSize │
└─────────────────────────────────────────────────────────────────────┘
Usage : With this option you can instruct MTA to optimize the
destination file to the smallest compressed file, selected
from all compressors with a 'Y' as the third parameter in
the xxxPATH options.
Relate: None
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ OnlyUpgrade │
└─────────────────────────────────────────────────────────────────────┘
Usage : This option does not contain any secondary parameters. When
active, MTA will only convert all files not standard to the
target compression method AND all files standard to the
target compression method BUT with a lower technical level
of the actual compression file. Currently only PAK and ZIP
offer two kinds of compressed files that can still be
accessed with a newer version but has a lower technical
level. For PAK files, this is the Crushed method. MTA will
(if you use PAK as target) only convert all non-PAK files
AND all PAK-files with crushed files inside. For ZIP files,
this is the reduced (1-4) method. MTA will (if you use ZIP
as target) only convert all non-ZIP files AND all ZIP files
with reduced (1-4) files inside. The method is not
fail-save in all cases. Some examples:
- A ZIP file contains 3 files, 2 shrinked files and one stored;
MTA will NOT mark this file as to be upgraded. This is only
done when a reduced (1-4) file is inside;
Note: The combination Reduced and Imploded in a file WILL trigger
MTA to convert.
Relate: ZIP, PAK files
Dest. : ZIP, PAK
┌─────────────────────────────────────────────────────────────────────┐
│ AllDisketteFiles │
└─────────────────────────────────────────────────────────────────────┘
Usage : This parameter is optional. You can direct MTA to move ALL
(NON-compression files included) from diskette to the paths
supplied in FDUTempPath an FDUTrashPath. This option has only
meaning with the /D (diskette option) switch.
You should use this option when you are using the parameters
EXITBeforeFill and EXITAfterFill. When using this option, you
get an empty diskette to work with in EXITBeforeFill.
You can not use AllDisketteFiles along with /UPGRADE !
Relate: EXITBeforeFill, EXITAfterFill
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ KeepAbnormalExtensions │
└─────────────────────────────────────────────────────────────────────┘
Usage : With this option you instruct MTA to 'keep' strange extensions
in the target file. This only works when the source file has
no valid extension (ARC,PAK,PKA,ZIP,ZOO,LZH,LZS,DWC,COM,EXE)
and only if the target is something else than DWC (DWC forces
the extension to be DWC).
So if you have a file JUNK.CPR (it is really a ARC file) and
you convert to ZIP, the target name stays JUNK.CPR. If the
source is names JUNK.LZH (a ZIP file <grin>) and you convert
to ZOO, the target name will be JUNK.ZOO.
Relate: None
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ ReportSpecialAttributes │
└─────────────────────────────────────────────────────────────────────┘
Usage : This option was already available in MTA 8.xx under the name S1.
It was a hidden option, only known to some SysOp's opt BBS's.
MTA converts all special attributes in a compressed file (lets
say HIDDEN or SYSTEM or READONLY) to a normal attribute of
ARCHIVE (X'20'). This is done to prevent files to keep on disk
after the compressed file is converted. With some compressors
it is possible to compress files with abnormal attributes.
When you include this option all files with special attributes
are reported in MTA.ERR !
Relate: None
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ KeepAV │
└─────────────────────────────────────────────────────────────────────┘
Usage : A very special option that puts MTA right back on the map !
ZIP-files can contain a Authenticity Verification (only USA
owners). Everywhere in the world, BBS's are receiving these
original files. When MTA converts such a file, the AV is gone
and that was not the meaning of the AV-function.
When you use KeepAV, MTA will keep all source-files with a
AV inside ! This means that ZIP's will stay ZIP's even if
the target is ZOO, DWC or something else.
Also, setting this option, will trigger some special MTA
functions. With KeepAV set to ON, you can still delete files
from these ZIP's that other Sysop's added to this file, if,
and only if, this extra file does NOT contain a AV. Also,
you can add comments and files of your own to these files
but this is not done in the 'normal' MTA way. In case of
a AV'ed file (with KeepAV on), MTA will delete files with
'PKZIP -d', add with 'PKZIP -a' and add comments with a
special type of 'PKZIP -z' (so no user intervention is
needed) and not by UNZIPing the file and ZIPing it again
as done in the normal way !
MTA will in fact UNZIP the source-file to check for any
virus (still, even with AV'ed files), so this feature is
still available.
KeepAV will also function on ARJ files with a security
envelope. In that case, it is impossible to add and delete
files from such files and also it is impossible to add any
comments.
I URGE you to use KeepAV when you use MTA on a BBS. This is
a service to your users !
Relate: None
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ KeepVolLabel │
└─────────────────────────────────────────────────────────────────────┘
Usage : A very special option that can be used in combination with
all archivers that can have volume-labels contained inside
the archives (currently only ARJ and ZIP). Look into chapter
3.37 for a full and detailed description of this option.
WARNING: When using ARJ in the conversion, you must use
ARJ V 2.10 or higher in combination with this
option, otherwise errors will occur !
Relate: None
Dest. : ZIP, ARJ
┌─────────────────────────────────────────────────────────────────────┐
│ Description │
└─────────────────────────────────────────────────────────────────────┘
Usage : This parameter is optional. If you supply this parameter. MTA
orders every compressor (if that function is included) to
ASK for a description of the target compressed file. MTA ignores
this command with compressors that can't create comments to the
compressed file !
You can not use this function in conjunction with the option
AutoDescription !
When you use ZIP as destination, -z and -c (both file and archive
comments) are used. This is not valid for versions under 1.00.
In this case you must use the ZIPVersion 09x option !
NOTE: NEVER use this option when running unattended, because
the archivers will prompt you for a comment !!!!!!!!!!
Relate: Autodescription, ZIPVersion
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ Autodescription [filename] │
└─────────────────────────────────────────────────────────────────────┘
Usage : This parameter is optional. If you supply this parameter, you
also have to supply a valid (and available) text-file. This
file will be appended to a ZIP, ZOO, ARJ or PAK-file as a
comment.
The file can be of any kind (ASCII, ANSI or even invalid). MTA
reads the first 64000 bytes (or less) of the file and appends
this to the archive.
When using the (de)compress on this file, these programs will
display the appended file as a header. Very nice option for
BBS systems, but remember, use PKUNZIP's -q option to display
ANSI screens. For BBS's, in general it is recommended to only
add ASCII files.
Up from release 12.50, you can use AutoComment along with
the CarryComment statement ! Look into the description of
this option for details;
One piece of advise for PAK, ZOO and ARJ descriptions. MTA uses
a quick and dirty way to add to such a file. Be sure not to
include multiple CRLF combinations for these archivers. If
PAK or ZOO detects one (due to the method of adding) the
remaining part of the text is gone in the target file. En-
hancement for this is scheduled for some of the maintenance
releases;
Relate: Description
Dest. : ARJ, ZIP, ZOO, PAK
3.14.6 Your own (new) compressor
────────────────────────────────────────────────────────────────────────
The following statements can be used to define a compressor that is
not (yet) included in MTA. If you find a compressor that meets the
standard to be included into MTA then please contact the author.
┌─────────────────────────────────────────────────────────────────────┐
│ OwnCompressPath {drive}{path}[filename] {opt} {SWAP} │
└─────────────────────────────────────────────────────────────────────┘
Usage : You can instruct MTA to include an extra compressor of your
own taste. This can be almost any compressor, but look in
the paragraph 'Customized compression' for the specs on
(de)compressors.
With this option you supply the full filename (name and
extension and optional path and drive) of the customized
compressor. This has to be a valid filename.
{opt} and {SWAP} have the same meaning as with all other
xxxPath options (see start of this chapter), so {opt} to
(de)select this archiver for optimalisation and {SWAP} to
force MTA to swap before the compressor is called;
Relate: All Own-options
Dest. : OWN
┌─────────────────────────────────────────────────────────────────────┐
│ OwnDeCompressPath {drive}{path}[filename] {opt} {SWAP} │
└─────────────────────────────────────────────────────────────────────┘
Usage : You can instruct MTA to include an extra decompressor of your
own taste. This can be almost any decompressor, but look in
the paragraph 'Customized compression' for the specs on
(de)compressors.
With this option you supply the full filename (name and
extension and optional path and drive) of the customized
decompressor. This has to be a valid filename.
{opt} and {SWAP} have the same meaning as with all other
xxxPath options (see start of this chapter), {opt} has no
function with a decompressor and {SWAP} is used to force
MTA to swap before the decompressor is called;
Relate: All Own-options
Dest. : any, source is OWN
┌─────────────────────────────────────────────────────────────────────┐
│ OwnCompressCall [parameters to use] │
└─────────────────────────────────────────────────────────────────────┘
Usage : When you include a customized compressor, you have to supply
the call to that compressor. This call must do the following:
- Compress all files in the current path to the compression
file;
- delete all original files from the directory;
- or compress all files with a MOVE (not COPY) option;
The syntax for the [parameters to use] depends on the compress.
Look in the paragraph 'Customized Compression' for an example.
There is one option you can include in the [parameter to use]
and that is the %1 combination. MTA will substitute %1 with
the name of the compressed file.
Relate: All Own-options
Dest. : OWN
┌─────────────────────────────────────────────────────────────────────┐
│ OwnDeCompressCall [parameters to use] │
└─────────────────────────────────────────────────────────────────────┘
Usage : When you include a customized decompressor, you have to supply
the call to that decompressor. This call must do the following:
- Extract all files from the compressed file to the current
path;
The syntax for the [parameters to use] depends on the
compressor. Look in the paragraph 'Customized Compression'
for an example. There is one option you can include in the
[parameters to use] and that is the %1 combination. MTA will
substitute %1 with the name of the compressed file.
Relate: All Own-options
Dest. : All, source is OWN
┌─────────────────────────────────────────────────────────────────────┐
│ OwnCompressLowErrorRC [errornumber] │
└─────────────────────────────────────────────────────────────────────┘
Usage : When you include a customized compressor, you have to supply
the LOWEST dos errorlevel given by the compressor when
something is WRONG. This must be any number between 1 and 255.
Relate: All Own-options
Dest. : OWN
┌─────────────────────────────────────────────────────────────────────┐
│ OwnDecompressLowErrorRC [errornumber] │
└─────────────────────────────────────────────────────────────────────┘
Usage : When you include a customized decompressor, you have to supply
the LOWEST dos errorlevel given by the decompressor when
something is WRONG. This must be any number between 1 and 255.
Relate: All Own-options
Dest. : All, source OWN
┌─────────────────────────────────────────────────────────────────────┐
│ OwnExtension [extension] │
└─────────────────────────────────────────────────────────────────────┘
Usage : When you want MTA to 'see' your customized compressed files,
you have to supply the name of the extension MTA has to look
for. This can only be 1 extension (e.g. OWN).
For every file that confirms to the supplied wildcards, MTA
will FIRST look if it has an 'OwnExtension'. In that case
MTA will decompress the file with the supplied decompressor.
If the destination is OWN, MTA instruct the customized
compressor to create files with extension 'OwnExtension'.
Relate: All Own-options
Dest. : All, including source OWN
┌─────────────────────────────────────────────────────────────────────┐
│ OwnRecursive │
└─────────────────────────────────────────────────────────────────────┘
Usage : When you implement an own compressor, you have to tell MTA
if that compressor is capable of handling recursive support.
This means that the compressor will look in the current and
all lower directories. If the customized compressor can not
handle recursive support, you have to leave this option out.
Relate: All Own-options
Dest. : OWN
3.14.7 Statements that define the MTA exits
────────────────────────────────────────────────────────────────────────
The following statements can be used to define one or more exits. An
exit a sort of hook in the MTA execution process. The several exits
(hooks) are called at special places while MTA is executing on one or
more files. The user can 'hook into' the process when one or more exits
are defined in MTA.CTL.
┌─────────────────────────────────────────────────────────────────────┐
│ VirusScanner [screen] [errorlevel] [scanner] [parm] {parm}..{parm} │
└─────────────────────────────────────────────────────────────────────┘
Usage : MTA is able to call up to 10 virus-scanners per archive, to
check the uncompressed files for viri. MTA is able to implement
any type of 'normal' virus-scanner that looks like the famous
SCAN by McAfee. Normally you should implement your favourite
scanner but you can also implement more than one scanner. Each
of the scanners is called until either:
- One of them has found a virus;
- The all are executed without any found virus;
With the current version of MTA, up to 10 scanners can be in-
cluded. If a file contains a virus, the archive is moved to
the error-directory and marked with special 0-byte files. Also
further processing of THIS file is aborted and MTA will start
working on the next archive.
[screen] must be present and must be either 'B' or 'D'. 'B'
means that this virus-scanner uses BIOS writes and can be
executed inside the small MTA DOS-window. 'D' means that this
scanner does direct screen updating and in that case MTA will
make a full (empty) screen available for the scanner. Some of
the scanners (like TBScan) can do either of the both, depen-
ding on a parameter. Be sure to implement the correct value
for [screen] of the MTA screen will look silly while executing
the scanner;
[errorlevel] must be set to a value between 0 and 255. You
must set this parameter to the errorlevel value that this
scanner will return when a virus is detected. As a unwritten
standard, all current scanners (SCAN, HTScan, TBScan) take
1 as the errorlevel for a detected virus. If a scanner imple-
ments several errors under one errorlevel, you can not use
that scanner. You should ask for a change ! MTA is tested
with SCAN by McAfee, HTScan by Thijssen and TBScan by Veldman.
Examples for all three are included in the sample MTA.CTL !
[scanner] must be the drive, path and filename of the scanner
itself (like C:\NOVIRUS\SCAN.EXE).
[parm] is up to you. At least 1 parameter should be included.
MTA offers the %D and %F parameters. The %D is substituted
with the directory (drive included) to perform the scan on.
There is no trailing backslash and no filemask.
%F is substituted with the drive, directory AND *.*, so it
is an enhancement on %D.
You can include several other parameters, depending on the
type of scanner you use. %D OR %F must be at least one of
them. Two examples, where the current decompressed files are
in C:\MTA\1456AB67:
... C:\NOVIRUS\SCAN.EXE %D /NOPAUSE
... C:\NOVIRUS\HTSCAN.COM %D /A /B
{parm} can be none to any number of extra parameters that you
would like to pass to this scanner.
WARNING: Never forget to check if the scanner will halt for
a prompt. If this is the case and you run unattended,
you could have a problem. If you run attended, this
makes no difference. Most scanners implement a type
of 'No-prompt' mode, like /NOPAUSE with SCAN. Be sure
to set it somewhere in [parm] or {parm}.
Relate: None
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ VirusScanParm [parm] {parm} {parm} │
└─────────────────────────────────────────────────────────────────────┘
This option is now obsolete and replaced with VirusScanner parameters.
┌─────────────────────────────────────────────────────────────────────┐
│ EXITBeforeStart program option option option │
└─────────────────────────────────────────────────────────────────────┘
Usage : This parameter is optional. You can direct MTA to execute an
other program (or batch-file) before MTA starts the search
and conversion of the files. This could be handy when you
use a cache device. You can instruct the cache to (temporary)
disable its execution because the conversion could influence
the optimization of the cache. Due to the whole process
of MTA, the only benefit you will have when the cache is
active, is one per archive (unpacking, remembering the
unpacked files, if not to big..., packing).
Besides of cache you can use this exit for any general
purpose.
See example in MTA__BAT.EXE file, supplied with MTA !
Relate: EXITBeforeEnd
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ EXITBetweenConversion program option option option %1 │
└─────────────────────────────────────────────────────────────────────┘
Usage : This parameter is optional. You can direct MTA to execute an
other program (or batch-file) after MTA has decompressed a
file. The obvious usage should be to automatically sort the
temporary directory on filename (as is not the case when you
decompress a ZIP-file) or to create files with CRC's and
directories to be included in the new compressed files.
MTA preserves the screen BEFORE the external call is made.
All parameters after the option are passed to a child DOS
shell (COMMAND.COM /Cyour commands follow here). Inside
the parameters you can code three special parameters:
%1 This parameter can occur anywhere in the option. MTA
will substitute this parameter with the relative path
where the uncompressed files are. This parameter is
in fact superfluous, because you ARE in this directory
when the call to the exit is made;
%2 MTA will substitute this parameter with the name (not
the extension) of the compressed file to be created;
%3 MTA will substitute this parameter with the extension
(without the point, so LZH and not .LZH) of the
compressed file to be created (can be used to test the
target type in most situations);
Note that %1, %2 and %3 are all optional and don't have to
be the first, second and third parameter in the command-line.
This means that %1, %2 and %3 coded here, don't have to be
%1, %2 and %3 in the batch-file you call (if you call a batch
file). For example:
ExitBetweenConversion C:\MYBATCH.BAT /A /B %1 /C %2 %3
must result in a batch containing %1 to %6, where %3 in
the BATCH equals %1 in this option, %5 in the batch to
%2 in this option and %6 (of course) to %3 in this option.
See example in MTA__BAT.EXE file, supplied with MTA !
Relate: None
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ EXITAfterCompression program option option option %1 %2 %3 │
└─────────────────────────────────────────────────────────────────────┘
Usage : This parameter is optional. You can direct MTA to execute an
other program (or batch-file) after MTA has re-compressed a
file. The obvious usage should be to AUTOMATICALLY create a SFX
file of the compressed file, but you can supply almost any
program.
MTA preserves the screen BEFORE the external call is made.
All parameters after EXITAfterFill are passed to a child
DOS-shell (COMMAND.COM /Cyour commands follow here). Inside
the parameters you can code three special parameters (%1, %2
and %3). They can occur everywhere inside the options.
When MTA calls the supplied program (batch) is passes all the
parameters but substitutes %1 with the path (without a trailing
backslash), %2 with the filename and %3 with the compression
type (e.g. ARC, LZS, ZOO).
You can use these parameters in a batch-file to trigger one
or more special functions, depending on the compression type.
When the called program (batch) does not use one or more of
these special parameters, you can leave them out.
THIS IS A VERY POWERFUL OPTION AND CARRIES SOME RISKS !
You can blow MTA sky high with this option, when you are
doing some strange things in the exit. MTA will look after
exit for the following things:
- Is the original compression file still available. MTA
ignores the remainder of the process (for this file) when
you delete the file in the exit, so this should not give
any problems;
- Is there a new file with the same name but with the
extension .COM or .EXE. If so, all manipulations to the
original compressed file are also carried out on the .EXE
and .COM files;
See example in MTA__BAT.EXE file, supplied with MTA !
Relate: None
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ EXITBeforeFill program option option option │
└─────────────────────────────────────────────────────────────────────┘
Usage : This parameter is optional. You can direct MTA to execute an
other program (or batch-file) before MTA starts with filling
the converted diskette. The obvious usage should be a format
of the diskette, but you can supply almost any program.
MTA preserves the screen BEFORE the external call is made. The
option only works with the /D switch active !
Please notice that when this parameter is used to FORMAT the
diskette, you also must supply AllDisketteFiles because only
then you are sure that the diskette is empty !
All parameters after EXITBeforeFill are passed to a child
DOS-shell (COMMAND.COM /Cyour commands follow here).
See example in MTA__BAT.EXE file, supplied with MTA !
Relate: AllDisketteFiles, EXITAfterFill
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ EXITAfterFill program option option option │
└─────────────────────────────────────────────────────────────────────┘
Usage : This parameter is optional. You can direct MTA to execute an
other program (or batch-file) after MTA has filled the
converted diskette. The obvious usage should be a disk catalog
program, but you can supply almost any program.
MTA preserves the screen BEFORE the external call is made. The
option only works with the /D switch active !
All parameters after EXITAfterFill are passed to a child
DOS-shell (COMMAND.COM /Cyour commands follow here).
See example in MTA__BAT.EXE file, supplied with MTA !
Relate: AllDisketteFiles, EXITBeforeFill
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ EXITBeforeEnd program option option option │
└─────────────────────────────────────────────────────────────────────┘
Usage : This parameter is optional. You can direct MTA to execute an
other program (or batch-file) before MTA ends.
This exit could be used to reverse the process started (or
stopped) in the EXITBeforeStart, but you can implement any
general purpose routine over here.
See example in MTA__BAT.EXE file, supplied with MTA !
Relate: EXITBeforeStart
Dest. : All
3.14.8 Statements that are usefull to Bulletin Board Systems and SysOps
────────────────────────────────────────────────────────────────────────
The following statements can be used to define one or more exits. An
exit a sort of hook in the MTA execution process. The several exits
(hooks) are called at special places while MTA is executing on one or
more files. The user can 'hook into' the process when one or more exits
are defined in MTA.CTL.
┌─────────────────────────────────────────────────────────────────────┐
│ CarryComment [type] [extra comment] │
└─────────────────────────────────────────────────────────────────────┘
Usage : CarryComment is optional. If you supply a CarryComment option,
you must also include a [type]. [type] must be a '1', '2' or
'3'. Every type has a special function, but only one can be
used (but overruled with the /CARCOM[type] command-line option).
When you include a CarryComment option, you instruct MTA to
carry over any ARCHIVE comment contained in a PAK/ZIP/ZOO/ARJ
source file to the target file, if the target is PAK, ZIP,ARJ
or ZOO. The carry will be done in one of three ways, depending
on the type.
[Type] set to 1 : MTA will carry over the comment (up to
256 bytes) from the source file, if a
comment is available;
[Type] set to 2 : MTA will first look into the source file
and will remember up to 256 bytes of the
comment (if any).
After conversion, MTA will look into the
file you supplied in the FilesBBS option
(if you did supply this option). If the
file has a record inside the FILES.BBS
(or alike file), this comment is taken
and not the comment in the source file.
If no comment is available, MTA will use
the comment from the source file (if any);
[Type] set to 3 : MTA will always look into the FILES.BBS
(or alike) file. This is only valid when
you use the FilesBBS option. If a record
is available, the comment is carried over
to the target file. If no record is available
the target also will not have any comment;
When you include [extra comment], you have the option to
add (in front) some extra comment to the archive. This can
be used when you want a combination of (lets say) a
description of the archive AND your personal comment.
CarryComment 2 MTA_Node_Here (and a description of (lets say)
'A special file for you', will create:
'MTA Node Here A special file for you' (there will be a
CRLF between the special comment and the description).
Any spaces inside the special comment MUST be replaced with
the underscore character. MTA will translate it back to spaces.
If there is NO comment available but the special comment is
set to a value, MTA will add the special comment without any
other comment.
You can make a combination of the AutoComment (when the
destination is ZIP) and the CarryComment option. In this
case MTA will add a combined comment into the ZIP-file.
In the combination the AutoComment file comes first and
the comment constructed by the CarryComment statement comes
directly (without a linefeed) after this comment. Please
keep in mind to keep some empty tailing lines in the file
pointed by AutoComment otherwise a not so nice display
of the comment will happen when the ZIP-file is viewed or
extracted.
Please also read the info on the FilesBBS option and the
AddFilesBBS option.
Relate: FilesBBS, AddFilesBBS
Source: ZIP/PAK/ZOO/ARJ
Dest. : ZIP/PAK/ZOO/ARJ
┌─────────────────────────────────────────────────────────────────────┐
│ FilesBBS {optional name} │
└─────────────────────────────────────────────────────────────────────┘
Usage : With this option you can instruct MTA to change converted
filenames in:
-a) A file (like FILES.BBS) in the current directory;
-b) A fixed file in a directory pointed by you.
To get the most of this option, you must understand that
this option can have various formats depending on what you
want. Basically the following formats are allowed and do the
following things:
- FilesBBS
You supply only the FilesBBS keyword. This means you
instruct MTA to change filenames in the file FILES.BBS
in the directory MTA is working on (if file is present);
- FilesBBS filename
You supply FilesBBS with only a filename (no path/drive).
This means you instruct MTA to change filenames in the
file supplied by 'filename' in the directory MTA is working
on (if the file is present). FilesBBS FILES.BBS has the
same meaning as if you coded only FilesBBS;
- FilesBBS drive:path\filename
You supply FilesBBS with a fully qualified filename
(including drive and path-name). This means you instruct MTA
to change filenames only in THIS file in THIS directory.
This comes in handy when all files are in one single master
directory file (like RBBS).
When you don't use the FilesBBSFormat option (described later),
MTA will search for filenames in position 1 in each record
and with the format FILENAME.EXT (upper- and lower case).
Changes are made after every conversion. If MTA aborts on an
operation, all previous filenames are changed.
When you run an ExitAfterCompression shell and in this shell
you convert a compressed file to a SFX-file and you delete
the original compressed file, MTA changes the FILES.BBS
entry to the SFX-name. If you keep the compression-file after
making a SFX-file, MTA changes the FILES.BBS to the new name
of the compressed file AND NOT the SFX-file.
So, for example, you have A.ZIP and you convert it (with
MTA) to A.LZH and in the ExitAfterCompression you create
a A.COM and delete the A.LZH, the FILES.BBS is changed from
A.ZIP to A.COM. The same goes for .EXE. When both .COM and
.EXE are created (?), MTA takes the .COM.
Up from version 11.01, MTA will also change sizes in the
FILES.BBS alike file. This should only be the case with
files that actually contain the file-length in the FILES.BBS
alike file itself like the RBBS master directory. When
converted to .COM or .EXE files (while deleting the original
target file), MTA will adjust the size to the actual .COM
or .EXE size.
If comments in the FILES.BBS alike file start with a download
counter (e.g. FILENAME.EXT [01] Downloaded once), and you use
the CarryComment option (types 2 or 3), MTA will strip the
download-counter (only when the format is [nnnn]) from the
description that will be added to the archive (not in the
FILES.BBS alike file).
This option can also be used in a NON-BBS environment where
4Dos is installed and used. Read the comments on 4Dos, later
in this documentation.
When the FilesBBS option is active and MTA detects a defective
archive, MTA will move this archive to the supplied error-path
or the temporary error-path and along with that, the entry in
the FILES.BBS alike file is copied (NOT moved) to a FILES.BBS
alike file (with same name and structure) in the error-path.
If such a file exists (when you have defined a default error-
path), the record is appended to this file. The original com-
ment will also stay in the original FILES.BBS alike file.
When the FILES.BBS-alike file is only on one fixed place (you
did add a path to this option) this option is NOT triggered;
Relate: FilesBBSFormat
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ AddFilesBBS │
└─────────────────────────────────────────────────────────────────────┘
Usage : This option can be used to tell MTA to add the name and
optional description to the file pointed to by the FilesBBS
option if it is NOT present in this file already. This option
will only function when the FilesBBS option is also set to
on. When you use the CarryComment (1 or 2) option, MTA will
also add any description in the original (and now converted)
archive to this file. The format of the records to be added
is the same as described by the FilesBBSFormat option.
Relate: FilesBBSFormat, FilesBBS, CarryComment
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ FilesBBSFormat [name] [extension] [comment] │
└─────────────────────────────────────────────────────────────────────┘
Usage : This option can be used to tell MTA something about the
internal format of the FILES.BBS alike file.
Under default conditions, MTA expects the filename to start on
position 1 of each line, with a filename format for name.ext
(with a point between the name and the extension) and the
comment to start on position 14. When your FILES.BBS alike
file (if you use any) is different, you must use this option
to set the new format.
The FilesBBSFormat option has three parameters. The first ([name])
must contain the position where the filename starts. The second
([extension]) tells MTA where the extension starts. If the
filename and extension are 'glued' together with a point (e.g.
MTA.EXE), [name] and [extension] must both contain the same
value and [name] must be the position where the filename starts
in the line. Two examples
- Records are made up like FILENAME EXT (ext always starts on
position 10, and the name on position 1). You must use 1
for [name] and 10 for [extension].
- Records are made up like FILE.EXT and the filename always
starts on position 20. You must use 20 for both [name] and
[extension].
[comment] must point to the starting position of the file
comment. If the file does not contain comments you can use
a value of 255 for [comment]. If the files (can) contain
'floating' comments, you must supply a different format of
this option. In this case, do not code the position, but
supply a 'I' (without quotes) and the ITEM number. An example:
A Filename Size Comment
In this example, the comment is ITEM number 4. Each item
must be (at least) separated with one or more spaces.
The FilesBBSFormat option only has a meaning when the FilesBBS
option is used also !
Relate: FilesBBS
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ TICKFiles [mask] │
└─────────────────────────────────────────────────────────────────────┘
Usage : Until now, all previous BBS-options had to do with normal
FILES.BBS alike type of files. The following options do some-
thing with other types of files.
The TICKFiles option makes it possible to pick up the descrip-
tion of a certain file from a TICK-file (*.TIC). When you get
your files into the inbound directory and the *.TIC files along
with them, you can now convert them (and optionally move them)
to any other system, while MTA will try to extract the comment
of the file from the associated TICK-file. You can do two types
of things with these comments. You can add them to FILES.BBS
(if AddFILESBBS is set to on) AND you can store them in the
header of the archive (comment) when CaryComment is set to on.
If CarryComment is on (independent of the type 1,2 or 3), MTA
will search for the comment in the old archive-header, the
FILES.BBS or both. If TICKFiles is set to on AND MTA can find
a description in any of the TICK-files, this comment will then
always overrule the comment from the FILES.BBS or the old
header.
[mask] must point to a drive, path and filemask (wildcards
can be included). For example you can let it point to your
inbound directory (e.g. C:\INBOUND\*.TIC). You can inplement
multiple TICKFILES options to point to different masks and/or
directories for example:
- TICKFiles C:\INBOUND1\*.TIC
- TICKFiles C:\INBOUND1\*.BAD
- TICKFiles C:\INBOUND2\*.TIC
- TICKFiles C:\INBOUND2\*.BAD
Up to 255 (!) TICKFiles options can be included.
The TICK-files are ALL searched (for every converted archive)
until either:
- a description is found;
- all files are processed and no description was found;
MTA will search for either FILE: or FILE and DESC: and DESC
inside the TICK-files. This is pointed out in FSC-0028 !
Relate: FilesBBS, AddFilesBBS, CarryComment
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ UpdateUntypedFiles [mask] │
└─────────────────────────────────────────────────────────────────────┘
Usage : This is a special, independent, option to update any type of
│ file with the new (converted) name of the archive. Let us take
│ an example:
│
│ -) Some product keeps a small database with names of files
│ (also your archives) inside. My RFW is such an example.
│ Now you convert some archive and the information inside
│ the database has become invalid !
│ Again, UpdateUntypedFiles is the answer to your problems.
UpdateUntypedFiles will update ANY type of file (even a pro-
gram/binary file) with the new name of the archive IF:
- You don't use the /D option;
- The name of the target has the same length as the name of
the source. A conversion from something.ZIP to Something.MD
will not be performed !
- The name of the source is within the 64K (65535) bytes bounds
of the file;
Longer files will NOT be truncated but only the first 64K of
bytes are scanned and (optionally) changed.
│ Back to the example. A solution to the problem:
│ -) Add the UpdateUntypedFiles C:\MYBASE\DATABASE.DBF to the
│ MTA.CTL. Any change will be updated into the DATABASE.DBF
│ database;
│ You can add up to 10 UpdateUntypedFiles options into the
MTA.CTL file. But be smart and think before you act. MTA
will search ALL files and though this is fast I/O, it can
take some time if you include numerous files !
UpdateUntypedFiles can be used as a replacement to the up-
dating of FILES.BBS when these files are smaller than 64K.
In that case, this option will give you a 50-200% gain in
speed over the FILESBBS option !!
│
│ Also read chapter 3.38 for TICK/FES support !
│Relate: UpdateTICKFiles, UpdateFESFiles
Dest. : All
│┌─────────────────────────────────────────────────────────────────────┐
││ UpdateTICKFiles [mask] │
│└─────────────────────────────────────────────────────────────────────┘
│Usage : The syntax is the same as with UpdateUntyped files. See chapter
│ 3.38 for examples and a description.
│
│Relate: UpdateFESFiles, UpdateUntypedFiles
│Dest. : All
│
│
│┌─────────────────────────────────────────────────────────────────────┐
││ UpdateFESFiles [mask] │
│└─────────────────────────────────────────────────────────────────────┘
│Usage : The syntax is the same as with UpdateUntyped files. See chapter
│ 3.38 for examples and a description.
│
│Relate: UpdateTICKFiles, UpdateUntypedFiles
│Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ COMPort [port] │
└─────────────────────────────────────────────────────────────────────┘
Usage : This option, on its own, does nothing. It will only be active
when /REMOTE is added to the command-line options. [port] must
define the COM-port where MTA can do remote logging. COMPort
can only be used when COM-port - 1 = FOSSIL-port. So COM2 will
be FOSSIL-port 1 and so on. If this is not the case, you must
use the FOSSILPort option.
COMPort must also be combined with the BaudRate option or the
/BAUD command-line option.
Relate: BaudRate, /REMOTE
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ FOSSILPort [port] │
└─────────────────────────────────────────────────────────────────────┘
Usage : This option, on its own, does nothing. It will only be active
when /REMOTE is added to the command-line options. [port] must
define the FOSSIL-port where MTA can do remote logging.
FOSSILPort must only be used when COMPort can not be used.
FOSSILPort must also be combined with the BaudRate option or
the /BAUD command-line option.
Relate: BaudRate, /REMOTE
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ BAUDRate [baud] │
└─────────────────────────────────────────────────────────────────────┘
Usage : This option, on its own, does nothing. It will only be active
when /REMOTE is added to the command-line options. Normally
you will add the baud-rate with a command-line option (/BAUD)
because it is depending on the users baud-rate. When you use
a locked baudrate (up to 19600) you can use the BaudRate option
though.
Relate: COMPort or FOSSILPort, /REMOTE
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ StoreSize │
└─────────────────────────────────────────────────────────────────────┘
Usage : This option, on its own, does nothing. It will only be active
when /REMOTE is added to the command-line options. Look into
chapter 3.36 for a detailed description of this option.
Relate: /REMOTE
Dest. : All
3.14.9 Special statements
────────────────────────────────────────────────────────────────────────
The following statements are a collection of statements that can not
be catagorized in one of the other groups.
┌─────────────────────────────────────────────────────────────────────┐
│ IncludeCtl [filename] │
└─────────────────────────────────────────────────────────────────────┘
Usage : This parameter is optional. In MTA.CTL you can include one
(or several) other CTL-files. This comes in handy when you
want to separate you 'normal' run-time options and the
'special' options you change much.
MTA can handle nested IncludeCTL statements. So you can
include a 'IncludeCTL MTA.001' in your MTA.CTL and again
you can include a 'IncludeCTL MTA.002' in your MTA.001.
The total number of IncludeCTL options (nested and in the
primary file) can be up to 16.
Relate: None
Dest. : All
3.14.10 Statements available when using a registered version
────────────────────────────────────────────────────────────────────────
The following statements can be used to define one or more exits. An
exit a sort of hook in the MTA execution process. The several exits
(hooks) are called at special places while MTA is executing on one or
more files. The user can 'hook into' the process when one or more exits
are defined in MTA.CTL.
┌─────────────────────────────────────────────────────────────────────┐
│ RegistrationName [name] │
└─────────────────────────────────────────────────────────────────────┘
Usage : This option has only a meaning when you received a key after
you registered MTA. In ANY OTHER case (non registered usage)
you must NOT include this option.
Relate: None
Dest. : All
┌─────────────────────────────────────────────────────────────────────┐
│ RegistrationKey [key] │
└─────────────────────────────────────────────────────────────────────┘
Usage : This option is now obsolete and must be removed. MTA now uses
a file as the key for REGISTERED users. Non registered users
must remove both the RegistrationName and RegistrationKey op-
tions.
3.15 Customized compression
────────────────────────────────────────────────────────────────────────
From release 7.01 and up, MTA can work with customized compressors.
This was implemented for special (de)compressors (maybe written by
your own hand) but it also comes in handy when a new version of one
of the common compressors hit the marked and MTA can not (yet) work
with some of the new options.
With an example I will show you how to implement a customized
compressor, but first there are some basic rules for the new
(de)compressor:
- It must report an error with an errorlevel higher than 0;
- The first errorlevel that reports an error can not be followed
by a higher errorlevel that does NOT report an error;
- The compressor MUST have an option to delete the files it
compresses after compression;
- The decompressor CAN have recursive support. This also goes for
the compressor;
- You can NOT use a batch-file to call the compressor/decompressor.
Probably I will include this in a higher version of MTA;
Now the example. Suppose we are implementing the compressor CRA.
CRA is fully compatible with the popular ARC but works backward
and not forward (maybe YOU like this). The calling syntax is just
like SEA's <tm> ARC (c). Now how do you implement this program:
OwnCompressPath C:\SYS\ARC\CRA.EXE
OwnCompressCall m %1 *.*
OwnCompressLowErrorRC 8
OwnDeCompressPath C:\SYS\ARC\CRA.EXE
OwnDecompressCall e %1
OwnDecompressLowErrorRC 8
OwnExtension CRA
OwnRecursive
MTA will substitute %1 in OwnCompressCall and OwnDeCompressCall
with the name and location of the compressed file (something like
C:\TRASH\PATH\MYTRASH.CRA), the rest is up to you.
The decompressor has to decompress the files in the CURRENT
directory, the compressor gets its files from the CURRENT directory.
Please feel free to experiment with this options. Next releases of
MTA will extend the features a lot, but this option can help you to
implement some basic compressors.
When you have to replace a common compressor (like ZIP) with a newer
version, the OwnExtension ZIP will do the trick. You must include
all other OWN-options and you have to create files with a destination
of OWN (/OWN). For safety you can comment out the other ZIP-related
options !!!
3.16 Recursive support
────────────────────────────────────────────────────────────────────────
MTA carries a complete recursive support. This means that MTA will
carry the (relative) path-names (if available in the source file)
into the target file (if the target compression method supports
path-names).
At the moment ZIP, LZH, LZS, ARJ, HYP and ZOO can contain path-names.
MTA will look at the target method to determine if the source is
decompressed with or without path-names. MTA will clean all the
created paths and remove them from under its own temporary path
when compression is done. This means that MTA carries a complete
recursive directory system inside itself.
LZH, LZS (Larc), DWC and PAK use a special trick with recursive
support. These archives are not extracted with paths relative to
the current directory but absolute from the root (sometime if
specified). It is impossible for MTA (without special resources
like an empty drive <grin>) to extract these archives, but when
you use the SubstDrive option in MTA, MTA will be able to work
on these archives in the correct manner (WITH recursive support).
I advise you to use the SubstDrive option, unless you have an
incompatible DOS (old versions, or special customized versions)
on your machine. If SubstDrive gives you problems, you can leave
the option out, but in that case MTA will leave the full recursive
support for LZH, LZS, DWC and PAK out. This means that you can still
convert from and to these systems but path-names inside the original
archives are gone after conversion. Read chapter 3.28 about the use
of a temporary substitute drive.
3.17 Compression File-in-Compression File
────────────────────────────────────────────────────────────────────────
This is a nice (I think) feature. You should thank Reinier de Groot,
Eef Hartman and John Lots for this feature.
The facts:
- Many compressed files contain extra (also) compressed files with
collections of supporting files (like batches for a communication
program);
- When converting say ZOO files (with ZOO files inside the original
ZOO file) to ZIP, it should be nice also to convert the included
ZOO files to ZIP, giving a ZIP files with ZIP files inside;
My history (or 'why wait until now'):
- In its original form, MTA took about 140K to do 'it's thing'. I
should urge to say that I have done the utmost to optimize all
used variables and to keep the code as small as possible, creating
a mixture of structured and spaghetti code (it is inherent to create
spaghetti when searching for speed and size);
- I should also like a 'convert compressed in compressed' option, but
again I urge to say that I would only implement this option when
giving (almost) the same options as a normal conversion of a file;
- Doing this with only 1 level of 'compression inside compression'
should cost (again) 100K. Even when the whole MTA program could
be converted to a recursive executable program, memory could not
be limited to a normal size;
- Forgetting the facts above, I would like to see a real conversion.
This means that MTA should convert compressed-in-compressed files
with:
- recursive support;
- description support;
- more levels of compressed-in-compressed (I mean a A.ZIP containing
a B.ZIP containing a C.ZIP containing.... and so on);
This is far more than the easy way where most other programs come
in the picture. I mean, decompressing the original and adding (1
level only) of a next compression file into the original one, thus
(possible) overwriting existing files in the original one.
Facts and fiction:
After reading questions from two users again, I was sure that the
compression-in-compression option was needed. I even got a little
crazy about the whole thing. But after a long and hot night (no
sleep !) I had it.
When I could rewrite MTA in a way that it could called again with
a fresh start, everything would work, but what about the memory
consumption. That was the least of the problems. There are enough
program swappers around, and now MTA contains (again at last) its
own (internal) swap utility !
MTA will swap itself (around 150.000 bytes) to EMS (if present and
usable) or to DISK (see SwapPath option) if less than 150.000 bytes
are present in EMS or there is no EMS at all. XMS is not (yet)
supported yet but will be in the future !
Diskette users are urged to buy a large EMS-card (with every swap
around 150 KBytes are set aside) or a hard-disk <grin> or they
must include the NoSwap option in their MTA.CTL (causing MTA to
call itself without swap, thus putting a limit on the number of
nest-levels).
The number of levels depends on two things:
- The length of the source-directory name and the length of the
directory name the called (de)compressor is in;
- The number of bytes available;
When you start with a directory called C:\A the possible number of
levels is higher than when you start with C:\DOWNLOAD\DOWNLOAD.
This is due to the maximum number of characters a directory name
can be (67 bytes).
When working in directory C:\FIRST, MTA normally creates the directory
C:\FIRST\xxxxxxxx (xxxxxxxx is a Hex representation of the current
time and date with a fixed length of 8 bytes). For every 'level' of
compression files inside the primary compression file, MTA creates
a directory with the name $ under the previous, thus creating
C:\FIRST\xxxxxxxx\$ for the first level, C:\FIRST\xxxxxxxx\$\$ for the
second level and so on.
The following discussion is based on swap of 150.000 bytes and a
remaining portion of around 4K (it is less) with every swap.
When MTA starts is 'takes' 128K. When processing the first 'level'
of compressed-in-compressed, it gives back 124K and holds 4K. The
second level needs 128K, but gives away 124K when working on the
following level.
Every 'give away' is swapped to EMS or DISK when EMS is not
available or full.
In a diagram (when converting a '2 level' compression-in-compression
file (the numbers are the total bytes occupied by the MTA program(s)
in memory):
MTA (128K) ------> MTA (132K) ------> MTA (136K)
A.ZIP ............ files
B.ZIP............. files
C.ZIP
You should add the number of bytes needed for the largest called
(de)compression program (around 250K), so with a 640K machine, 60
levels should be the limit (this is 59 times MTA in memory and around
60 * 12k = 7,6 MegaBytes in EMS or on Hard-disk, so be prepared !).
Recursive support inside compression-in-compression files, sounds
like fiction, but with this structure its a FACT. MTA maintains its
complete recursive support with EVERY level of compressed files
inside a compressed file !
3.18 MTA Touching System
────────────────────────────────────────────────────────────────────────
MTA carries a complete file-touching (is (re)setting file time/date
stamps) system. This system works like the MTT (another DISP program).
What can this touching system do ? Well that's easy to tell. Your
compressed files all carry a file time/date stamp. In fact, most of
these time/date stamps say nothing about the file. Sometimes it's the
time/date of creation, sometimes the time/date of download, something
non of the kind.
Some of the compression programs carry a function to set the date of
the compressed file to the highest (or lowest) date in the archive,
but not all the compressors know of this option and when it does, it
has no meaning to you when you get the compressed file in it's
compressed form.
MTA has it's build-in touching system to supply you a with this
function, even when the target compressor does not have this function.
MTA extends this feature by letting you choose from 4 kinds of file
touching. These are:
- Touch compressed file with current date (TOUCHCUR parameter);
- Touch compressed file with the lowest date IN the compressed
file (TOUCHLOW parameter);
- Touch compressed file with the highest date IN the compressed
file (TOUCHHIG parameter);
- Leave the compressed file's time/date as it is (supply non of the
three parameters above or supply /F to the command-line);
There is one thing you must observe ! MTA can give a message (depending
on the WarningTime parameter) about the touching. In fact there are two
possible errors:
- A file IN the compressed file has an invalid date;
- All files IN the compressed file have an invalid date;
An invalid date is a date lower than 01-01-80 (00:00) or higher than
the current date and time.
Messages of these kind can have two meanings:
- The one who created the compressed file has done something strange
with time/date stamps;
- Your own current date on your PC is incorrect (lower than the
actual date);
You special cases you want to ignore the time component in a date/time
stamp. There is an option available for this feature. Also you can
instruct MTA to ignore dates that are to high.
The last of the two is the most dangerous and you should look into
it at once !
MTA excludes all files marked as excluded (but also those marked as
pending for include) for the touching system. When these files are
not excluded, it could be possible that all your archives will get
the same date (e.g. the date of one of the included or excluded
files). The included and excluded files will have nothing to do with
the archive itself so excluding them from the test will not harm the
results at all.
One final note on archivers that do the touching of their own. MTA
let them do their touching but after the file is created, MTA will
change the date/time of the new file again to reflect the detected
date/time execpt when you use not touching at all. PKLITE/UNPKLITE
is excluded from this story. MTA leaves the touching to PKLITE.
3.19 Optimal sizes
────────────────────────────────────────────────────────────────────────
From release 9.01 of MTA there is a new feature available. You can
now construct the smallest compression file from a selection of
compression programs. All you have to do is to add a third parameter
to the ..PATH options in MTA.CTL. When you supply a 'Y' as the
third parameter (after the path and name of the compressor), you let
MTA know that it can use this compressor as one of a selection of
compressors that are called to obtain the smallest compressed file.
MTA optimizes like this:
- Supply at least 2 (or 1 in the case of ZIP) compressors with the
'Y' option;
- Call MTA with the /OOA switch;
- MTA decompresses the compressed file;
- MTA compresses the file with all of the compressors with 'Y' as
the third parameter. In the case of PKZIP 1.01, MTA tries both
-ex and -eb;
- MTA selects the smallest compressed file and will create this one
for you as the target.
This all means that you can get a mixture of compressed files. Only
when you include only ZIP as a optimize compressor (only 1.01>) you
always get ZIP's. In case of all other compressors it is useless
(and time consuming) to only add 1 optimize compressor because in this
case MTA will do the same thing twice.
To keep disk-space inside limits, MTA will delete every temporary
compressed file after its creation. This means that when a file is
LZH and the optimizer will choose LZH, you are compressing the file
twice, but the disk-space used will be the same as when you run MTA
without /OOA.
3.20 Diskette option
────────────────────────────────────────────────────────────────────────
MTA's greatest power lies in it's diskette option. With this option
you can easy convert full diskette's (with compressed files) to
another compression system.
When activating the diskette option (with the /D switch) MTA goes in
recursive state and will ask for the next diskette when the previous
one is done.
MTA's diskette option depends on a number of parameters in MTA.CTL.
These are FDUTempPath and FDUTrashPath. These parameter MUST be
available (and correct) in the MTA.CTL file.
What steps does MTA take when converting a diskette:
- Read all (selected) files on the diskette and decide which are
compressed files and which are not;
- Move (copy + delete from source) these files to the path supplied
in FDUTempPath;
- Create a temporary directory (MTA$$$$$.MTA or one you named in the
MTA.CTL);
- Take a file until no files left;
- Decompress the file in FDUTempPath to the temporary directory;
- Compress the file to the new system and put the result in the
FDUTempPath;
- Execute the 'Before' EXIT if available;
- Move all files (from big to small) back to the diskette until there
is no room left on the diskette or all files are moved;
- If there was no room on the diskette to store all files, move the
remaining files to FDUTrashPath and keep them there until a next
diskette comes along with enough space to hold one (or more) of
the files in FDUTrashPath;
- If there was still room left after the move to diskette, MTA looks
in FDUTrashPath to see if there are one or more files that will fit
onto this diskette. If so, MTA moves this(these) file(s) to this
diskette;
- Execute the 'After' EXIT if available;
- Clean up the temporary directory;
- Ask for next diskette or stop;
From the previous description you could learn three things:
- The FDUTrashPath and FDUTempPath directories remains intact after MTA
ends. FDUTrashPath could contain files, FDUTempPath should be empty;
- When the FDUTrashPath directory gets to big (you are using a target
compression program that creates bigger files than the original ones)
you supply MTA with on or more (almost) empty diskettes and MTA will
move files from FDUTrashPath to diskette;
- You could move all your new incoming files (even NON-compression
files) to the FDUTrashPath directory by hand. MTA will move these
files to a diskette when time (and diskette space) comes.
One final word. As you have noticed (I hope) you can add unlimited
power to MTA's diskette option with the 'Before' and 'After' exits
to another program. Please read the EXITBeforeFill and EXITAfterFill
options in MTA.CTL.
3.21 Virus detection
────────────────────────────────────────────────────────────────────────
This is a nice option for both BBS's and normal users. MTA can call
McAfee's SCAN program (must be version 40 or higher) and if this
program detects VIRUSES, MTA will move the original file to the
temporary directory (also the decompressed files are found over here)
and creates 3 null-files as a comment, so when you display the
directory, you can see that programs with a virus are over here.
SCAN (version 40 and higher) is available on any good BBS. Please
make sure the SCAN version you upload is version 40 or higher. MTA
will not work with lower versions.
SCAN is NOT included in this archive !
Check out with McAfee's bulletin board. They have a lot of vaccines
for most viruses. A great venture !!!!
A warning about the usage of SCAN in combination with a multitasker
like DesqView <tm>. You must install the multitasker in such a way
that it is not possible for a task to perform 'bleeding' of any
characters stowed in the keyboard-buffer. MTA will store a number of
keystrokes in the keyboard buffer to maintain unattended operation
even with up to 150 virus-infected files in one single archive. This
can cause problems in the other task when these characters are stored
in one task and used/read in one or more other tasks.
Also Veldman's TBSCAN is directly supported by MTA. See the notes on
the Virus-options in MTA.CTL. TBScan does not have the problem as
mentioned above (DesqView) because MTA will NOT stuff any keys to
the keyboard !
3.22 Screen control
────────────────────────────────────────────────────────────────────────
MTA uses a small window so you can look at the results of the called
(de)compressors. This window is maintained with Int 29, so no
timeout problems (as with earlier MTA versions that used Int 21)
should occur.
MTA 9.10 brings back the old situation but far more sophisticated than
previous versions. ANSI displays are ignored. So PKZIP header files
in ANSI format are displayed as a number of garbage characters.
Because of the problems that could arise with ANSI screens (unwanted
re-configuration of keyboard control, like a ANSI virus) and because
of the fact PKUNZIP defaults to no-ANSI, I have dropped the ANSI
support in the small window. Better, the ANSI driver is disabled
before the (de)compressor gains control and is reactivated after the
(de)compressor is finished. This also caused a slight improvement in
the overall performance inside the window (my old Int29 was always
a bit slow) of around 2-5%.
The newly implemented DOS shell has the same environment as do the
(de)compressors have, so no ANSI.
If you have troubles with the window, you can force the old type of
window. Supply ForceCGA in MTA.CTL and your problems should be gone.
This window is somewhat slower than the original one, so try MTA
without this option first.
MTA has (from release 14.01 and up) full support for EGA/VGA/MCGA
users. The following is implemented in MTA to please these users:
- If the user runs an enlarged text-mode like 43, 50 or 60 lines
(with a width of 80 bytes), MTA will enlarge the Int29 window
while calling archivers;
- If the user runs a text-mode that gives you more than 113 bytes
per line (like the 132x?? modes), MTA will reconfigure its screen
to this mode and the alternate displays are displayed BOTH. Toggle
(with T) has no meaning in these modes;
- MTA will not set or reset any mode itself. MTA will look to the
initial screen dimensions and will act according to the values;
- MTA can reset itself while running. This means that when you
reset the video-mode to another value (inside the shell or some-
where in an exit), MTA will also reset its screen when MTA gets
control again;
- When you want to run MTA in standard enlarged mode (60 lines and
132 characters per line, to name one), but you don't want to
use this mode by default for your other tasks, you can use the
VideoModem option to set this mode to the one you like. After
termination, MTA has reset the mode back to the one that was
used at the start of MTA;
- MTA will, in no case, FORCE the mode, so inside exits you are on
your own. If the program you call resets the mode and does not
set it back (shame), MTA will be forced into another mode;
When you let MTA swap itself before an archive-program is called
(MTA 14.20 and up), MTA will not retain the child-process window
at the bottom of the screen, but the actual window (with the in-
formation before the call) is restored after the call.
3.23 KeyBoard control
────────────────────────────────────────────────────────────────────────
When MTA is running you have control over some keyboard functions.
When you press [ESC] (escape button), MTA will terminate when the
current files is converted. When you hit ESC you can release the
termination stage by hitting any other key, MTA will resume as
normal. This option is not available in /D mode.
When you press 'S', MTA will bring you in a DOS-shell, the moment
MTA thinks it is save to do so. This can be anywhere in the conversion
phase. MTA will set you in the directory you started MTA from. NEVER
alter files in the temporary directory MTA has created if you do not
know what you are doing. Also pressing any other key after 'S',
releases the DOS-shell option as with [ESC].
Pressing 'T' will cause MTA to toggle the statistical display from
static to dynamic mode or the other way around, depending on the
default settings (AltDisplay option). You can toggle as much as
you like while MTA is running !
Some users have put in complaint about the hard way MTA can be
interrupted. While converting files (not in diskette mode) MTA will
stop (after hitting ESC) as soon as possible but I will try to find
a more flexible way to deal with this in version 12 and higher.
3.24 Swapping
────────────────────────────────────────────────────────────────────────
Regulary I get questions about swapping. Most of this questions deal
with the functions of swapping, so I will try to point out what swap-
ping is.
When you run MTA, it takes away around 160K (or more) from memory.
In a 'normal' (non 80386 and some special chipsets) environment, this
will leave anywhere between 440K and 360K (or less with TRS's in your
machine) for shells (archivers, dos-shell and exits). If this is NOT
enough, than conventional memory must be found somewhere. MTA (and
other programs that use swapping) contain a little (nifty) routine
that gets control. This routine (obvious this routine is located at
the start or end of the memory) will 'move' (swap) the surrounding
program (the rest of MTA) to 'unconventional' memory. With unconven-
tional memory I mean some type of storage that can not be used to
execute a program. Types of storage that can be used are extended or
expanded memory but also disk-storage. The little routine stays in
memory though and loads the next program (archiver, shell or exit).
Then it sits and waits for that program to finish and it gets con-
trol again. After getting control, it restores the moved (swapped)
parts of MTA back to conventional memory again and the next MTA
function is started.
As said before, MTA uses it's own internal swap routine. All of the
code, stack, heap and data is swapped. Also some overhead is swapped
along with these items. In MTA 14.20 (again) a new swap-routine is
implemented that is both faster and uses more types of resources
with less space.
MTA's swapping routine uses EMS, XMS or disk. If EMS is available,
MTA will swap to EMS (if enough space is available). If no EMS is
available but you have XMS, MTA uses XMS. If neither EMS nor XMS
is available, MTA uses disk-space.
For every swap MTA uses a file-handle, even for swaps to XMS and
EMS. This file-handle will stay open until the current swap is
complete. If MTA does a recursive swap (so MTA swappes, a new MTA
is loaded, this one swaps again and so on), all file-handles of
previous swaps (swaps earlier in the recursion that have not yet
finished) will stay open. In special cases, you should alter the
FILES= statement in CONFIG.SYS to a higher value when you expect
a large number or recursive swaps.
When MTA swaps to disk, a file is created in the directory that
you supplied in the SwapPath option OR in the current directory
at the moment that MTA started ! Just like the file-handles, these
files stay open until the swap has returned to the original task.
NEVER start a CHKDSK or a disk-optimizing utility in one of MTA's
exits while there is a swap in progress. Also a directory sort of
the directory containing the swap-file(s) can be dangerous.
For every swap, MTA creates a special unique file. The name of this
file is equal to the HEX-representation of the combined date/time
at the moment of swapping. Though almost impossible, MTA checks if
this file is present in the directory. If this is the case, MTA will
wait for a second and tries a new name, until a non-matching name is
found. For every MTA-task you start, MTA adds a extension, equal to
'S' and the task-number (e.g. S01 for the first task) to the file
name, so several concurrent MTA's can never create equal swap-files.
For each swap, MTA will swap almost all of the coding, data and stack
to the swap-file. This can vary depending on the number of files that
MTA selected but should be somewhere between 160 and 200K.
3.25 Encryption and Authenticity Verification
────────────────────────────────────────────────────────────────────────
Look into the KeepAV option and you will know the most of the special
ZIP files with AV-files. Keep in mind that keeping the original AV
is a service to the users if you run a BBS and uses MTA to convert
your BBS-files.
A special case is encryption. At this moment, DWC, PAK, ARC, PKPAK,
ARJ and ZIP can encrypt files. PAK, ARC and PKPAK (they all try to be
compatible with each other) give no normal way to detect the usage
of encryption, so trial on error is the case. ZIP and DWC do better
in this case. The fact that these files are encrypted can be detected
from the internal headers. The actual password can not be deleted.
MTA can extract encrypted files if you supply the correct password
with the /IPpassword command-line option. Release 13.xx will contain
a somewhat more sophisticated way to handle encrypted files.
If MTA detects a ZIP or DWC with encryption and /IPpassword is not
supplied, MTA will skip conversion for this file. ARC, PAK and PKPAK
files with encryption will give an error and the file is moved to
the error-path if no valid /IPpassword is supplied.
MTA can create encrypted files (ARC, PAK, PKPAK, DWC, ARJ and ZIP)
with the usage of the /OPpassword option. All selected files will be
encrypted with the supplied password. Also a log can be created to
reflect all files generated with a password, using the option with
the name NormalPasswordListPath;
MTA also contains a nifty feature. If you (in case you are a Sysop)
want to create encrypted files in your BBS and you only want the
users to extract these files when you give permission, you can
generate files with RANDOM encryption passwords. Use /OP@ and MTA
will create files with a random password. The used passwords are
stored in a special log-file (supplied in the RandomPasswordListPath
option or generated as MTA.PWD in the current directory). Only when
you supply the password to the user, the user is able to extract
the files in the archive. You could also use the list as a viewable
file, somewhere in the BBS.
Normal users will (normally) have no need for this option, but I can
imagine there are users who share a PC and who would like to encrypt
their own files with a unique password in an easy way.
3.26 Mice and other trouble
────────────────────────────────────────────────────────────────────────
With the introduction of programs like Microsoft's Windows, mice got a
true life of their own. I am (for sure) not in favor to use the mouse
in a normal keyboard oriented application, as is now the new trend in
programming. But MTA is not that keyboard oriented and the mouse will
only 'consume' 3K of extra memory, so why not !
Programming a mouse is something for specialist and I am, for sure,
no mouse specialist (as specialist will see when they run MTA). I
have found out that programming this little creature is far more
complex than it appears, but I have tried to make it acceptable,
both for the hands and for the eye. If users have ideas on how to
do a better job, let me know.
Now for the functions of this little rodent in MTA itself. The full
screen tag is mouse-supported (not such a big task). Tagging and
scrolling is like with every other mouse program (clicking and the
famous scroll-bar).
The status-screen of the running MTA is something else. I have created
a mouse-window so only horizontal movement is possible and only inside
the bounds of the selectable objects. You can move the mouse to the
white (highlighted) '<.>' parts in this window (tagging, shelling,
terminating and resetting) and click the LEFT button. It will take a
while before the screen changes (there are some technical reasons for
this, mainly speed) but it WILL change. The mouse is even accessible
in most of the DOS-shells except the EXIT-shells. Inside the EXIT's you
run another application. If that application supports the mouse, you
will have your support. On return, MTA will reset the mouse to the
bounds I have defined.
Clicking the RIGHT button is the same as hitting [ESC] on the keyboard
or placing the mouse-cursor on <ESC> and use the right-click. It is
just a shortcut.
When the mouse is active in MTA, the lower frame will change a bit.
You will see the ' ├██╞≈≈' symbol, with the mouse-cursor (initially)
on the ''.
Some systems have problems with the active interrupt routine while the
(de)compressor is running in the little window. In that case (hangups
and such), use the NoMouse option with the Window parameter !
If you run an enlarged mode (80x43, 132x60 or anything else but 80x25)
MTA will force the mouse to disable. This is the result of the bad
performance some drivers have with these modes. Because the mouse-cur-
sor is also almost invisible in these modes (or you must have Mount
Palomar on your desk), mice are useless in these mode (at least with
MTA they are).
3.27 ITS
────────────────────────────────────────────────────────────────────────
One of my other products is called ITS (Inter Task Semaphore) and is a
batch-file enhancement for multi-task environments like DesqView or
Windows. It's main usage lies in the BBS environments. If you include
a call to ITS in all batch-files in all BBS-lines, you can manipulate
the batch for line 'x' inside line 'y' because ITS can 'talk' to a
second (third, up to eight) ITS. It contains some handy features so
you can run a variable event in one task and let the other tasks wait
until the event is ready.
MTA is a program that is tailored to run inside a BBS-event. MTA 12.51
is aware of the ITS commands /DOWNMTA and /UPMTA. This means that when
you make MTA aware of ITS (with the ITSPath option set), you can submit
a /DOWNMTA with ITS and when MTA is running, it will complete the
current file and terminate, just like you are hitting the ESC key.
MTA will only read the ITS.SPH (semaphore) file. So when you select to
terminate MTA with /DOWNMTA (with ITS), don't forget to set the status
back (with the ITS command /UPMTA) after the event is done, otherwise
the next execution of MTA will only convert one file !!
For more details on ITS, read the documentation of this product !
3.28 MTA and 4Dos <tm>
────────────────────────────────────────────────────────────────────────
Many environments run under 4Dos, so why should MTA not be aware of
4Dos. When you don't run a BBS, you can use many of the BBS-options
in your private environment even when you don't run a BBS. Most of
BBS-options are rewritten or enhanced to support 4Dos. Let me give
you a full list of features, MTA will give you in a 4Dos environment:
- More and more BBS SysOp's give an extra service to the user. More
SysOp's are aware of the fact that when you have seen the archive
comment with their commercial, you have seen enough. So more Sysop's
replace this commercial with a description of the file as the
archive comment and add a little file with their commercials to
the archive. When you receive such files, MTA can come to help.
Make the following installation:
- Set the FilesBBS option like this:
'FilesBBS DESCRIPT.ION' (without quotes)
- Set the FilesBBSFormat option like this (or leave it out because
this is the default):
'FilesBBSFormat 1 1 I2'
- Set the Not4DosAware option to OFF (comment it out);
- Set the AddFilesBBS option;
- Set the CarryComment option to 2 (without extra parameters);
So what happens:
- MTA will convert the archive and extract the comment from it;
- In the conversion process, MTA can remove the Sysop's commercial;
- MTA will add the old comment to the new archive (why, you will
see later);
- MTA will add a record with the name and description (as extracted
from the original archive) to the file DESCRIPT.ION in the current
directory;
- MTA van optionally move the archive to another location and in
this case the description in DESCRIPT.ION is carried along with
the file;
What is the result:
- When you give a DIR, you will see the description of the archive
in the listing (a 4Dos feature);
- When you catalog your files, there is a 50% chance that your
catalog program can read the archive and add the archive comment
to the database as the description of the file;
What you don't see:
- It is possible that you can not find the file DESCRIPT.ION in
the directory. This is caused by the 'HIDDEN' attribute that
4Dos assigns to this file;
So you can see that there are many options in MTA that could be
meaningful to you, even when you don't run a BBS !
In a 4DOS environment, most people use the default '^' character as
the 'COMPOUND' character. PKWare also uses this character to let
PK(UN)ZIP display the command-line (1.10 and higher) and this will
cause trouble in paradise. MTA switches the -^ command-line option for
PK(UN)ZIP to off, when 4Dos is fully present in the PC and the option
Not4DosAware is set to OFF (commented out).
MTA will detect a full 4Dos environment when:
- 4Dos is aware in the machine (Int. $2F combination);
- The word 4DOS is present somewhere in the value of the COMSPEC
environment variable.
IF COMMAND.COM is used as a secondary shell, MTA will not recognize
the PC as being under full 4Dos control because MTA uses the shell
pointed by COMSPEC (COMMAND.COM in this case) to call some of the
programs.
When MTA detects a full 4DOS environment, it will not use the -^
option in PK(UN)ZIP. Changing the COMPOUND character to something
else will still not trigger MTA to use the -^ option. In fact, be
careful with the COMPOUND-character. There can always be another
invalid combination !
When you don't like the 4DOS options MTA uses than there are several
options at hand:
- Include the Not4DosAware option in MTA.CTL, but change the COMPOUND
character to something else than '^';
- Change the secondary shell to COMMAND.COM and not to 4DOS (in this
case you don't have to change the COMPOUND character);
3.29 Substituted drive
────────────────────────────────────────────────────────────────────────
If you have a very old version of DOS that does not support the SUBST
command (check the manual) than NEVER (I mean NEVER) use the SubstDrive
options unless you would like to rebuild most of your archives manually.
So you have checked your manual and your DOS supports SUBST. Please take
a moment to look into the dos-path (where things like FORMAT, XCOPY,
ASSIGN and such programs are) to see if the SUBST program is in fact
present in this directory. Also check if this directory is inside the
DOS-path. If not, correct the problem and copy SUBST from the original
DOS-diskette to this directory and/or add the directory to the DOS-path.
So you have corrected the problem (if any). Now take some time to read
your DOS-manual to see what SUBST in fact does (if you did not know).
Now it is time to blow the horn. Some compressors (PAK to name one,
but LHarc and LArc also share this problem) are in the habit to
extract archives (with directories inside) into directories counted
from the root and not from the current path. MTA can not work around
this problem in a normal manner unless you assign a temporary drive
(with NOTHING on it) to work with MTA.
MTA fixes this in an un-ordinary fashion. When MTA creates a temporary
directory on the drive, it 'covers' this directory with a substituted
drive. The only thing YOU have to do, is to assign a suitable drive-
letter (of a drive you do not use while MTA is running, let's say
one of the floppies, or use a unused drive-letter, PROVIDED THAT THE
YOU DO NOT GET A CONFLICT WITH THE LASTDRIVE PARAMETER). The best
choice for a hard-disk oriented machine is one or more of the re-
maining unused drive-letters. Please alter the LASTDRIVE option in
your CONFIG.SYS (if you have one installed) so that you enable as
many drives as you are going to use in MTA (normally only one, but
it could be more if you are going to run multiple MTA's at the same
time in networks or in a multitasking environment). It IS valid to
use the floppy-drive letters but they must be unused at the time
you are going to run MTA. If you use a floppy-drive letter, you can
NOT use the /D (diskette) option in MTA if it is pointing to the
same drive you used as a SUBST'ed drive.
MTA creates AND REMOVES the substituted drive several times for each
archive. I have fixed all possible problems (shells, child and so
on) in MTA itself so that even a high-levelled archive (many archives
inside the archive and lower) could be converted. Don't bother the
technique (let me do the dirty work) only make sure that you never
set the same substituted drive inside the ExitbetweenCompression
exit !
NEVER, NEVER, NEVER, NEVER use one of your harddisk drive-letters
as the substitution drive. Use the A or B drive or create a new
entry by adding one drive to the LASTDRIVE command (the saves op-
tion). Because of the way MTA switches between drives and directories
(with the SubstDrive set to ON) it could happen (when you assign one
of your harddisks as the substitution drive) that an archive is
created with ALL files on that drive and that all files are gone
(COMMAND.COM, CONFIG.SYS, get the picture) after MTA is ended. They
are not gone, but somewhere in one HUGE archive, just converted by
MTA !!!!!
To help you with these problems, MTA checks if the supplied drive
contains a readable disk. This is (hopefully) always true for your
current hard-disks and RAM-disks, and could be true for your diskette
drives. If MTA finds a readable drive with the same name as the sup-
plied substituted drive, MTA ends with an error. When you use A: or
B: as the substituted drive, be sure to remove any disks. Also, when
no disk is present in the floppy, there will be a little (or long,
depending on the machine) delay to check the drive. If you supply
/D on the command-line (diskette option), then MTA will ALSO test
if the /D-drive (default A:, but can be overruled with /D=B:) is not
the same as the substituted drive.
Everything said here, goes in favor for the usage of a new drive-
letter, one higher than the last active drive, but using A: or B:
is still possible !
With 14.01 it is now officially possible to run multiple copies of
MTA at the same time (networks, multitasking environments). This
causes trouble to the substitute mechanism if these multiple MTA's
run on the same LOGICAL machine. There are situations where a multi-
tasker could create a self-contained DOS-environment. But in most
cases (multitaskers), setting a SUBST drive causes this SUBST to
'bleed' thru to the other tasks (DesqView to name one, try starting
two DOS-shell's, set a SUBST in one DOS-shell and ask for a list of
SUBST'ed drives in the other).
In these cases, MTA needs to use different substituted drives in the
different tasks. Supply as many drive-letters (and alter the LASTDRIVE
option along with these specification) as you are going to run multi-
ple copies of MTA. So in a case where you run two copies of MTA at the
same time, two drive-letters are needed on the SubstDrive option in
MTA.CTL. Also read the next chapter !
Try the option and be amazed or angry (don't say I didn't warn you).
Leave the option out (comment the SubstDrive option) if you are un-
sure !
Many thanks to Dirk Astrath for suggesting this option. I was already
working on a time-consuming and not so fail-save mechanism for the
problem, but this is much better and it actually works also !!
3.30 Running multiple copies of MTA at the same time
────────────────────────────────────────────────────────────────────────
With version 14.01 it is now possible to run multiple copies of MTA at
the same time. This could only be the case in networks and in multi-
tasking environments like DesqView <tm> or Windows <tm>.
I will now point out the things you must set up in MTA for such situa-
tions, what MTA will protect and what it won't protect. Having only
a full multitasking environment and not a network, I will write this
points with a multitasking environment in mind. But they should work
the same on a network:
Setting up MTA:
- If you use the SubstDrive option than you must make sure you use
as many drive-letters in this option as you are going to run mul-
tiple copies of MTA;
- Make sure the LASTDRIVE option is set along with the SubstDrive
option;
- Make sure you have SHARE.EXE loaded in your machine. Without SHARE
MTA will make a mess of things (SURE !);
- Make sure that you run all the concurrent copies of MTA all with
their own TASK-number, as supplied with /TASK. Failing to do so,
would also cause problems (SUBST'ed drives);
Protection provided by MTA:
- MTA will protect all the files it uses INTERNALLY;
- All log-files (if they are the same in all running copies of MTA),
all temporary files, all directories and all substituted drives
are either unique to the task or SHARE'ed with all other tasks;
- All external files (like the FILES.BBS-alike files) are protected
when they are altered. This means that these files are SHARE'ed
within the multiple copies of MTA but also with other tasks that
have SHAREing options like SOME Bulletin Board Systems;
- When two MTA's want to access the same file at the same time and
with different attributes (one WRITE, one READ for example), one
of the tasks will wait until the file is released again. To over-
come problems with 'eternal waits' (called deadlocks) you can in-
stall an option in MTA.CTL that will manage the maximum time MTA
will wait before aborting. Waiting for allocation of a file, will
also be the case with external files, provided the 'other' task
has used SHAREing attributes with the open of that file;
Protection NOT provided by MTA:
- MTA will NOT manage anything that happens within the shell's. So
when the (de)compressors run or when you are within one of the
supplied exits, the called program has to manage the SHAREing by
itself.
It is almost stupid to say, but be sure to convert different files
in each of the copies of MTA. Letting two or more copies of MTA
converting the same files, will cause trouble. Though SHAREing is
managed, there could be cases where MTA is waiting for a file (it
will do so) and when this MTA gets the 'GO' signal, the file could
be gone (temporary) because on of the other copies of MTA is working
on that file.
Running multiple MTA's in a multitasking environment works but there
is a big tradeoff. When you don't have enough 'power' on your machine,
running two concurrent copies could take as long as serially running
these copies. (De)compressors are in the habit to eat lots of your
cycles. The multi-tasker also wants to have a little snack and all are
eating more food than the PC can supply, causing delays, low perfor-
mance and so on. I have tested with several machines, but you need
at least a true 386-25 (or a very fast 286, like a 20Mh) or higher
to get some results. But in the world where these options of MTA are
needed, machine-power is usually available.
3.31 Compression of single executable files (PKLITE)
────────────────────────────────────────────────────────────────────────
With MTA 14.20 and higher you can also use MTA to do conversions of
executable files to compressed (self contained) executable files
with PKLITE. This feature merely comes as a bonus to the program.
MTA's main goal is to convert archives from a certain system to a
system you like. The compression of EXE/COM files can be used as a
separate function.
Most of the MTA.CTL statements have no meaning to this type of con-
version. You can setup MTA to do nothing BUT conversion of COM/EXE
files when you set the CompressionType option to PKLITE or UNPKLITE
but in this case you only use around 10% of the programs functions.
In most cases you setup MTA to do a archive-to-archive conversion
and you set CompressionType to the system you like. If you have setup
MTA like this (along with all possible options), you can easy use
MTA to convert COM/EXE files by including /PKLITE or /UNPKLITE as a
command-line option when you call MTA. MTA will ignore all options
that have nothing to do with the conversion of executable files and
will convert COM/EXE files from normal to PKLITE or back.
Included in MTA 14.20 is the interface to the PKLITE program (as you
already imagined). I did not include LZEXE because the latest version
I have seen can, only convert from normal to LZEXE'ed and not back.
There are programs that can do the reversed (LZEXE'ed to normal) but
there are at least 3 I have seen and I can not create a protected and
generalized interface to all of them (also because 2 of them come as
a shell and not as a stand-alone program). This does not mean that
MTA is not LZEXE-aware. When selecting files, MTA takes into account
if a COM/EXE file is already compressed with LZEXE (0.90 or 0.91) and
will skip the file in that case. When decompressing, MTA will only
select PKLITE-compressed COM/EXE files.
While releasing MTA 14.20 I am working with a new japanese program
called DIET (version 1.0) that can do the same thing as PKLITE. If
this program comes popular and/or I do not find any problems while
testing it, I will include it in one of the next releases. The same
goes for LZEXE when a 'both-way' version comes available. Also I
will include an option to compress all COM/EXE files inside archives
with PKLITE or any other PKLITE-alike program, though this has the
risk of automatically creating unusable files.
When you run MTA without anmy file-mask, but WITH the /PKLITE or
/UNPKLITE option (or CompressionType set to one of both), the
tag-window will also change and will only display available files
for this type compression.
A file is available (and selectable by MTA) for PKLITE if:
- It is a COM or EXE file;
- If it is not compressed with PKLITE, LZEXE 0.90 or LZEXE 0.91;
- If it is not a self-extracting archive (SFX) of any of the known
archive systems;
A file is available (and selectable by MTA) for UNPKLITE if:
- It is a COM or EXE file;
- It is compressed with PKLITE;
3.32 The MTA tag-window
────────────────────────────────────────────────────────────────────────
In previous versions (14.10 and less), the tag-window was not that
fancy as it should be. Because of the change in the command-line,
where you can now include a directory (and drive) to search for files
(remember, it overrules any selection in MTA.CTL, such as the options
DefaultPath, RAPaths and QBBSPaths), the tag-menu is also changed.
When you run MTA without any file-masks on the command-line, a tag
menu is displayed as before. In this tag-menu you have now the option
to tag files inside ONE directory. A mix of files in several different
directories is impossible.
When the tag-menu is displayed, you can switch to other directories
and even to other drives. If one or more of the displayed drives is
not available (not ready, door open, unformatted disk) it can be
selected but the tag-window will ignore it after it has detected any
error on that drive.
When you start MTA with SFX support (so you include self extracting
archives), all files with abonormal extensions and COM/EXE files
that are SFX-files, will be included. The testing will take a while,
depending on the speed of the drive and the machine you have.
If you start MTA with the PKLITE or UNPKLITE option, all available
AND selectable files are displayed (see chapter 3.31).
3.33 The MTA-child
────────────────────────────────────────────────────────────────────────
When MTA detects an archive inside an archive, it will try to convert
this archive also (arc-in-arc operations). Normal (small) conversion
programs would do this in a recursed way, but MTA is so big and uses
so many options that it is almost impossible to handle this recursed.
For one arc-in-arc level things could be managed, but with 10 of such
levels (so archive in archive in archive .... and so on ...) would be
impossible.
MTA uses a little trick. MTA can run in two modes, called parent and
child mode. In parent mode, MTA is a child of the DOS itself (so MTA
is either called from another program, from a batch or the command-
line) and this is MTA's primary mode. All mentioned options and all
features are available in parent mode. It is called parent mode, be-
cause MTA can call itself. The primary MTA is then the parent of the
newly called MTA. This secondairy copy of MTA will run in child mode.
The child mode will disable some features. Archives contained in
archives do not have any need for a banner-comment inside. So the
AutoDescription option is not working in child mode. This is not the
only feature that does not work in child mode. There are several of
them, some dealing with internals, some with options and features
(externals).
The parent MTA can call one child MTA, but this child MTA (in child
mode) can, again, call another copy of MTA that will also run in
child mode. This does NOT mean that the 2nd MTA that calls the 3th
MTA will switch to parent mode. Only the first copy is in parent
mode and all other copies are NEVER in child mode.
Without special tricks, memory would not be sufficient to contain
more copies of MTA. In general (640K available) there will be just
enough room to allow 2 copies of MTA (one parent, one child) in
memory and keep enough free space to run a small (e.g. not ARJ or
LHARC, but ARC, PKZIP and such) archive program. This special trick
is called swapping and is described elsewhere. With swapping set to
on, each MTA will keep 4K of memory occupied while calling the next
copy of MTA, so a large number of childs can be called before the
memory gets low.
MTA detects its mode from a command-line option. In previous versions
this was the /CHILD parameter but this is changed (in 14.30) to the
/| parameter. When you call MTA from the command-line and you supply
/|, you will be amazed that MTA will report an error (invalid command-
line option). This is because DOS strips the | character (this is the
piping character) from the command-line before calling the program.
You can still call MTA with /| from a program (I do it myself) but I
advise you not to do this. Strange things can happen, because the
parent MTA will create an environment for the child to feel itself
happy and you will not. So NEVER call MTA with /| on your own.
For unregistered users there is also no bonus in calling MTA with
/| because the delay-screen is also available in the child and
you will loose some options in child mode that are available when
you call MTA in parent mode.
One final note (an IMPORTANT note). All options that you supply to
the parent MTA on the COMMAND-LINE will be passed to the child(s).
The child(s) read the MTA.CTL again and MUST use these parameters
to overrule some options. For example, you have set the MTA.CTL to
compression in ZIP format. Now when you call 'MTA *.ZIP /LZH' forcing
MTA to create LZH files (overrule the ZIP) and an arc-in-arc situation
is at hand, the child would convert the nested archives to ZIP and
not to LZH. This is why several COMMAND-LINE options are passed to
the child(s).
Normally this will function ok, but when you use a big list of
options (almost to the limit of the 121 characters that DOS allows
on the command-line), the result could be overflow on the command-
line, causing the child to do strange things. This is because of
the fact that the parent MTA adds some options to the command-line
(/| amongst them) itself. Previous versions of MTA would choke on
this, version 14.30 and up will check for this situation and report
an error. If this happens there is only one thing to do. Create an
alternate MTA.CTL (MTA.ALT or something from your own imagination)
and carry the bulk of the COMMAND-LINE options over into this
alternate configuration file. Now call MTA with /CTL to point to
this alternate file and everything will be ok again (you must leave
out all other options naturally).
3.34 MTA and unattended operations
────────────────────────────────────────────────────────────────────────
Recently there keep on comming questions about the unattended support
of MTA. This is all my fault, because the earlier documentation was
somewhat cruel on this item (and not without errors either).
There are a number of options that influence the way that MTA works
in unattended mode. Most of them you can find out when the need is
there but some must be pointed out.
In most cases you will do an unattended MTA on the same directories
each time over and over. First I must point out the way you must
setup MTA to work in the right directories. This can be done in one
of the 3 following ways:
- Put the MTA in a batch-file, change to the right directory before
you call MTA and call MTA with its options (see later). You can
repeat this for every directory. For example:
..
..
D:
CD \ZIP1
MTA [parameters]
E:
CD \ZIP2
MTA [parameters]
..
..
To work on \ZIP1 on D: and \ZIP2 on E:;
- Make the batch smaller and use DefaultPath options in MTA.CTL.
You include DefaultPath D:\ZIP1 and DefaultPath E:\ZIP2 in
MTA.CTL and you can reduce the previous batch to:
..
..
MTA [parameters]
..
..
To work on those two directories again;
- You would like to run MTA on all your directories of a BBS. MTA
supports both QuickBBS <tm> and Remote Access <tm> BBS types.
You include either the QBBSPaths option or the RAPaths option.
Inside the batch you do:
..
..
MTA [parameters]
..
..
And MTA will work on all files in all BBS directories.
Now the next problem. You must tel MTA to work on some files. You
can do this in two different ways:
- Use file-masks for [parameters]. In the previous examples you
could tell MTA to convert all *.ZIP and *.LZH files (ARJ is
your target) with 'MTA *.ZIP *.LZH' and MTA will convert all
*.ZIP and *.LZH files in the supplied directories;
- Use the MarkString and NoMarked options (or /MAS and /MAR on the
command-line).
This is a better option. In the previous example you would have
problems when someone uploaded a *.LZS or *.ARC file. These
would not be converted. If you used *.* ALL files would be converted
even those that you converted earlier !!!
NoMarked can be used to tell MTA only to convert files that confirm
to the supplied mask AND that are not converted before. So with
the NoMarked and MarkString opions set, the call to MTA can be
changed to 'MTA *.*'. Only those files that are not converted before
are converted and will not be converted again until you set the
NoMarked option to OFF;
Finally there are some options that you must change or include. When
you run MTA in unattended mode but you don't want MTA to run longer
than a certain amount of time (BBS events !!) you can include the
RunTime option to limit the number of minutes that MTA can run.
Remember that MTA will start in a new archive even when 1 second is
left, so you can outrun the RunTime by the time that your machine
needs to convert the last archive.
Sometimes you can get frequent warnings on some files. In unattended
mode these warnings won't be seen, neither do you want to hear the
beeping, so put a value of 0 to the WarningTime option. All important
things are logged (when you put on the logging).
REMEMBER. ALLWAYS include a file-mask. To call MTA without parameters
in unattended mode will force MTA to display the tag-menu and to wait
until you enter the files.
3.35 Other computers
────────────────────────────────────────────────────────────────────────
A many asked question deals with LHA, ZOO and ARC files on different
kind of computers (AMIGA and such). MTA CAN be used on these files if
the archiver creates compatible files BUT with one restriction (see
later). For LHARC this means for example, that you should include a
/CL/O- or LZHCompression /O- command-line/option.
There is only ONE restriction. There can be files inside these archives
that contain longer filenames than allowed by DOS. MTA could handle
these files but DOS can't. Take xxxVirusSig for example. When this
file were extracted, a file xxxVirus.SIG would be created and the new
archive would include the point ! Also special types of attributes
could cause a problem. These files are therefore ignored by MTA (in
general).
From parts of LHARC documentation for AMIGA that have been sended to
me, I have understood that users of AMIGA-LHARC are advised to make
archives that can be handled by DOS itself if they are passed to a
DOS-system (for storage or distribution).
3.36 Usage in an online-environment (remote BBS logging)
────────────────────────────────────────────────────────────────────────
This an all following versions can run as an exit to a BBS-door. The
most common example would be FileDoor <tm>. It is possible to implement
MTA into FileDoor's ExitAfterUploadx (x is 1, 2 or 3) hook. You should
notice though, that implementing online conversion of files, at the
expence of the users, is something you must deside carefully. When the
users are impatient, it could turn out that users hang up the phone
before MTA is terminated (e.g. FileDoor gets control again) or that
users don't upload anymore. So think twice before you act.
If you implement MTA into a door that runs remote, you can use the
/REMOTE switch (there is no counterpart in MTA.CTL) to instruct MTA
to also log its action (only a small part of the logging) to the
remote node. /REMOTE must be combined with FOSSILPort (/FOSSIL) or
COMPort (/COM) and BAUDRate (/BAUD). You can setup the right confi-
guration (depending on the BBS-line) with a combination of MTA.CTL
options and/or command-line switches.
If remote operation (/REMOTE) is wanted, MTA will log the progress
to the FOSSIL-port that is configured. MTA will monitor the carrier
and will stop logging (but continue working) to the remote side if
the carrier is lost.
If the door is compatible with FileDoor <tm>, you can instruct MTA
to create files with the name [origname].F$D (where [origname] is
the filename of the file that is processed). This file will contain
the ORIGINAL size of the file before MTA started conversion and can
be used to calculate any upload credits. The receiving door must
delete these files itself after MTA has created them ! This option
is only active when /STOSIZ (StoreSize) is active !
3.37 Archives with volume-labels
────────────────────────────────────────────────────────────────────────
Currently ZIP and ARJ support volume-labels. These little entries in
these archives can cause a pain in the head of the programmer and so
they did me. I first tried to do it the fancy way but any of these
options caused MTA to use to much memory, so I have implemented it
in a simple but working way.
When you convert ZIP to ZIP you don't have to get special versions,
but if you use ARJ in the process (so ZIP to ARJ or ARJ to ZIP or
ARJ to ARJ) you need version 2.10 of ARJ otherwise you get errors.
There are some special things you must do, before you can use the
KeepVolLabel (/KeepVL) option. Here's a checklist:
- Make sure that a 'standard' DOS label program is inside the DOS
path under the name LABEL.EXE (default) or LABEL.COM (alternate).
MTA will call the label-program with the syntax:
LABEL.ext drive:description
If no LABEL.EXE/COM is available and KeepVolLabel is set to active,
MTA will abort;
- Assign a label to the drive that MTA will use for the temporary
path. If there isn't a volume-label and a file with volume-label
inside is to be converted, you will get a warning and MTA will
label the drive to 'MTA LABELED';
- Make sure you use ARJ 2.10 or higher when you convert from and/or
to ARJ;
- Set the KeepVolLabel option to active or use the /KEEPVL command-
line switch if KeepVolLabel is not active, to activate the con-
version of volume-labels.
What does MTA do when converting volume labels:
- All following actions are only done for a file that actually con-
tains a volume label. And they are done for each of the files
that you selected and contain a volume-label;
- Before decompressing, MTA will obtain the current volume-label
from the drive that contains the temporary path;
- Conversion is set with decompression of volume-label to ON. For
ZIP, the current drive (e.g. the drive that contains the tempo-
rary path) is used (-$), for ARJ this drive is assigned (-$drive:);
- Conversion continues by setting compression with volume-label to
ON. For both ARJ and ZIP, the drive is assigned (-$drive/-$drive:);
- After compression, MTA calls LABEL.EXE/COM with the old volume
label to restore this label;
The above actions do NOT take place if the source archive does not
contain a label otherwise the target should always contain the volume-
label of your temporary drive and that is not what you want. If the
target is non-ZIP or non-ARJ, the labels are changed because I have
made MTA prepared for other archivers that will support volume-labels
in newer releases.
If the source is an AV'ed ARJ or ZIP and contains a volume label, the
label is also changed but that will have no meaning and/or result if
you have set the KeepAV option to on because in that case, compression
is not started.
If anywhere between decompression and compression an error occurs, MTA
will try to restore the old volume-label. There could be instances
where this does not happen but those are not foreseen (runtime errors).
Be sure that your LABEL.EXE/LABEL.COM works unattended (test it before-
hand). Also there are some versions of LABEL that will use incorrect
conversion. If a label is 11 bytes and contains DISK......1 (the points
are spaces), LABEL drive:DISK......1 (points are again spaces) will
result in a label DISK.1 and not DISK......1. If this happens with
your LABEL.EXE/COM and you don't want it, you can not use KeepVolLabel.
Newer versions of MTA are planned to have an internal label-routine
that CAN work in the correct way and still unattended !
│3.38 TICK files and related material
│────────────────────────────────────────────────────────────────────────
│As you know by now, there are several options that deal with TICK (and
│its clone FES) files. I won't go into the TICKFILES option. This option
│is described in detail in the CTL-section and is only important with
│incomming files.
│
│It becomes different with TICK/FES files that are outbound ! In general
│you have the following problems when you run MTA over files that are
│also the subject of an outgoing TICK/FES file:
│
│- The messages that are generated by TICK and FES, contain the name
│ of the archive. With a conversion from ARC to ZIP, this will cause
│ the file to be renamed from A.ARC to A.ZIP but the messages genera-
│ ted by TICK/FES still contain A.ARC !
│
│- The TICK/FES files ALSO contain the name A.ARC, so that is another
│ problem;
│
│- The TICK/FES files also contain the CRC of the A.ARC file. Obvious,
│ when you convert A.ARC to A.ZIP, the CRC will also be changed but
│ the TICK/FES files still contain the old CRC;
│
│MTA can deal with all these problems. You must use a number of special
│options to do so (using them will cause some overhead on MTA) but af-
│ter implementing them, you won't have any trouble with a conversion of
│a file that is also subject of a TICK/FES file. In general, these op-
│tions can also deal with other products than TICK/FES if they work in
│the same way.
│
│The following options must be set and will do the following:
│
│- UpdateTICKFiles and/or UpdateFESFiles
│ You can add up to 10 of EACH options all pointing to file-masks in
│ certain directories. When you have set up the BBS is a way that you
│ support different TICK/FES outbound directories for different nets
│ (or zones), you must point to all of them, for example:
│
│ UpDateTickFiles D:\MAILER\OUTBOUND\TICZONE1\*.TIC
│ UpDateFESFiles D:\MAILER\OUTBOUND\TICZONE1\*.FES
│ UpDateTickFiles D:\MAILER\OUTBOUND\TICZONE2\*.TIC
│ UpDateTickFiles D:\MAILER\OUTBOUND\TICZONE5\*.TIC
│
│ When A.ARC is concverted to A.ZIP, MTA will scan ALL these files
│ in the supplied directories and search for hits for A.ARC. When
│ found, A.ARC is changed in A.ZIP. The TICK/FES files are changed
│ as binary files. MTA reads up to 16K of data per file and does a
│ search on the changed item. As a result of this, it is NOT possible
│ to use these options when the file-name lenght is changed. So a
│ conversion from A.MD to A.ARC and reversed is NOT supported. The
│ changed files don't have to be TICK/FES files but these files con-
│ tain the filename (obvious). If your product also creates a file
│ with a filename inside, MTA can still do the job !
│
│- UpdateUntypedFiles
│ You can add up to 10 of these options. In our TICK/FES example,
│ this option must point to the netmail directory (outbound) be-
│ cause the *.MSG files must also be changed. For example:
│
│ UpDateUntypedFiles D:\MAILER\OUTBOUND\TICZONE1\*.MSG
│ UpDateUntypedFiles D:\MAILER\OUTBOUND\TICZONE2\*.MSG
│ UpDateUntypedFiles D:\MAILER\OUTBOUND\TICZONE5\*.MSG
│
│ MTA will do the same with these files (obvious they are the
│ outbound messages). This option differs from the previous 2
│ in the fact that UpdateTICKFiles and UpdateFESFiles ALSO change
│ the CRC (32-bit CRC) of the files and this option ONLY the file-
│ names;
│
│DON'T use this options when you don't work with a TICK/FES alike
│complex. When UpdateTICKFiles and/or UpdateFESFiles options are
│present in MTA.CTL, MTA will ALWAYS calculate the 32-bit CRC of
│the source and the target. This causes overhead when there are
│never updates for TICK or FES files. The 32-bit CRC is fast but
│on a big number of files it will still count ! If you have TICK or
│FES files that are BIGGER than 16K, please contact me. I can change
│MTA to make it compatible with files up to 64K, but it will cause
│memory overhead. Only when your seen-by lines are to many to men-
│tion, these problems will occur !
│
│
│3.39 FES, yet another TICK-clone ?
│────────────────────────────────────────────────────────────────────────
│By now you will have seen the word FES several times. In zone 2, net
│24x, most of the people know FES. FES looks like a TICK-clone but
│implements some nice features (including its own type of communication
│files, called *.FES) that are not found in TICK. FES is already relea-
│sed but development goes on. Most eye-catching is the HATCH procedure
│that gives you a user-friendly interface between your files, FILES.BBS
│(in AND out) and yourself. FES can optionally create FES or TICK files
│for a given node.
│
│If TICK is all you want, stay with TICK or take a peek at FES. If you
│are doing distribution yourself (so adding new files to a chain), like
│I do, FES could be it. Also, if you have nodes that want a large num-
│ber of files from certain area's, FES can also come in handy and there
│is even a FESFix option to obtain files from remote.
│
│FES can be obtained from several german BBS's and the author can be
│contacted at 2:241/8003 (Frank Ploenissen).
┌───────┬─────────────────────────────────────────────────────────────┐
│ 4 │ Runtime information │
└───────┴─────────────────────────────────────────────────────────────┘
4.1 Command-line switches
────────────────────────────────────────────────────────────────────────
MTA is driven with the MTA.CTL file, but I can imagine that you want
to use (or change) some of the options temporary. This can be done
with a number of command-line switches.
The syntax to start MTA is:
MTA filespec filespec filespec ... [switches]
Switches must start with a slash ('/') and are separated with one or
more spaces.
You can also use a different (alternate) CTL-file. In this case you
must include the /CTL[filename] somewhere in the command-line switches.
[filename] must point to the full drive/path/name of the alternate
MTA.CTL file.
You can supply MTA with a maximum of 25 different filespecs (e.g. *.ARC
*.PAK *.ZIP). The various filespecs have NO meaning when you use the
/D switch and MTA.CTL contains AllDisketteFiles !
A complete list of switches follows:
┌─────────────────────────────────────────────────────────────────────┐
│ /? │
└─────────────────────────────────────────────────────────────────────┘
If you supply /? to MTA, you will get a full-screen help function. In
this help-function you can browse thru the available command-line.
The help-function is a chained program that MTA will call (MTA.CH2).
This is done to preserve memory for MTA itself.
┌─────────────────────────────────────────────────────────────────────┐
│ /TASKnn │
└─────────────────────────────────────────────────────────────────────┘
This command-line has only a meaning when running multiple copies of
MTA at the same time. Look into chapter 3.30 for a description of this
option.
┌─────────────────────────────────────────────────────────────────────┐
│ /LVL0 │
└─────────────────────────────────────────────────────────────────────┘
With /LVL0 you can instruct MTA to work on all selected files in the
current directory. Coding /LVL0 is the same as coding /W without a
directory name. /LVL0 overrules any DefaultPath option in the MTA.CTL
(alike) file.
┌─────────────────────────────────────────────────────────────────────┐
│ /LVL1 │
└─────────────────────────────────────────────────────────────────────┘
With /LVL1 you can instruct MTA to work on all selected files in all
directories UNDER (not including) the current. This option overrules
the DefaultPath option(s). Also you can (an may) not use the /W option
in the command-line.
BBS systems can use this option well if all their area-directories
are under the current directory !
┌─────────────────────────────────────────────────────────────────────┐
│ /LVL2 │
└─────────────────────────────────────────────────────────────────────┘
With /LVL2 you can instruct MTA to work on all selected files in all
directories UNDER AND INCLUDING the current. This option overrules
the DefaultPath option(s). Also you can (an may) not use the /W option
in the command-line.
BBS systems can use this option well if all their area-directories
are under and including the current directory !
┌─────────────────────────────────────────────────────────────────────┐
│ /LVL3 │
└─────────────────────────────────────────────────────────────────────┘
With /LVL3 you can instruct MTA to work on the COMPLETE current drive.
All directories on this drive will be selected by MTA, provided that
there are NO MORE than 255 directories on this drive. This option also
overrules the DefaultPath option(s) in MTA.CTL.
┌─────────────────────────────────────────────────────────────────────┐
│ /ARC │
│ /DWC │
│ /LZH │
│ /LZS │
│ /OWN │
│ /PAK │
│ /ZIP │
│ /ZOO │
│ /MD │
│ /ARJ │
│ /HYP │
│ /PKLITE │
│ /UNPKLITE │
└─────────────────────────────────────────────────────────────────────┘
Normally MTA converts files to the system supplied in the MTA.CTL
option CompressionType. With this switches you can overrule the
current CompressionType with another system. When you supply
more than one of these switches, the last will be active.
┌─────────────────────────────────────────────────────────────────────┐
│ /SIM │
└─────────────────────────────────────────────────────────────────────┘
This option (only implemented as a runtime command-line option) can be
used to run MTA in simulate mode. This mode will do the following:
- Select files depending on mask/menu;
- Decompress the file(s);
- Scan for Virus;
- Call exits;
- Next file.
With this option you can use MTA to scan for a virus in any archive or
archives without compressing them back again. MTA will do the normal
extraction (in the temporary directory or RAM-disk) but will not do the
compression again.
┌─────────────────────────────────────────────────────────────────────┐
│ /NO4DOS │
└─────────────────────────────────────────────────────────────────────┘
This is the same as coding the Not4DosAware option in MTA.CTL. Look
into the chapter about 4Dos.
┌─────────────────────────────────────────────────────────────────────┐
│ /D │
│ /D=d: │
└─────────────────────────────────────────────────────────────────────┘
This is a 'stand alone' switch, meaning that it has no counterpart
in the MTA.CTL.
This switch must be included when you want to activate the diskette
support (FDUTrashPath and FDUTempPath must be available in MTA.CTL).
When you supply /D, MTA forces to the A: drive, when this is not
what you want, you can supply /D=d: (where d: is a valid drive) to
MTA. If you want to convert a diskette and also, at the same time,
you want to convert to a different type of media (say 360Kb to 1.2Mb)
you can supply /D=A: /MB:\, telling MTA to convert all diskettes from
drive A: to drive B:.
┌─────────────────────────────────────────────────────────────────────┐
│ /W │
│ /W[path] │
└─────────────────────────────────────────────────────────────────────┘
Normally MTA works on files in the list of DefaultPath directories
or the default directory if non were specified in MTA.CTL. You
can overrule this behavior by adding a /W command-line switch.
/W instructs MTA to work on the current directory, overruling
all Defaultpath options in MTA.CTL;
/Wpath instructs MTA to work in the supplied directory, overruling
all DefaultPath options in MTA.CTL;
/W works along fine with the full-screen selection but /W is ignored
when you include a drive and/or directory in one of the file-masks.
┌─────────────────────────────────────────────────────────────────────┐
│ /C │
│ /H │
│ /L │
│ /F │
└─────────────────────────────────────────────────────────────────────┘
One of these switches (when used) overrule the current option in
MTA.CTL for the MTA touching system.
/C forces MTA to touch archives with the current date
/H ,, ,, to touch archives with the highest date found in
the archive;
/L ,, ,, to touch archives with the lowest date found in
the archive;
/F ,, ,, to retain the original archive date;
┌─────────────────────────────────────────────────────────────────────┐
│ /M │
│ /Mpath │
└─────────────────────────────────────────────────────────────────────┘
Only /M makes the current setting of MoveToDir in MTA.CTL inactive.
/Mpath (where path is a valid path (absolute or relative to the
current path) forces MTA to use this path to move files to after
conversion (even if MoveToDir was not supplied in MTA.CTL).
When using /Mpath with /D, converted files will be moved to the drive
supplied in [path].
┌─────────────────────────────────────────────────────────────────────┐
│ /CZnnn_nnn │
└─────────────────────────────────────────────────────────────────────┘
This parameter overrules the options for ZIPCompression options in
MTA.CTL. You must code the compression options just like you do when
running ZIP, but if you use more than one option (like -ea4 -eb2),
you must NOT separate them with a space but with an underscore (like
-ea4_-eb2).
Refer to the PKZIP documentation (-eax, -ebx, -exn, -ex and -es options).
│┌─────────────────────────────────────────────────────────────────────┐
││ /COnnnn │
│└─────────────────────────────────────────────────────────────────────┘
│This parameter overrules the options for ZOOCompression options in
│MTA.CTL. You must code the compression options just like you do when
│running ZOO, but if you use more than one option (like h//), you must
│you must NOT separate them with a space but with an underscore (like
│-ea4_-eb2). Most options in ZOO can not be separated so the usage of
│the underscore will not be obvious with this option !
│Refer to the ZOO documentation (h option).
┌─────────────────────────────────────────────────────────────────────┐
│ /CDn_n_n │
└─────────────────────────────────────────────────────────────────────┘
This parameter overrules the options for DWCCompression options in
MTA.CTL. You must code the compression options just like you do when
running DWC (or example z for size or y for speed), but if you use more
than one option, you must NOT separate them with a space but with an
underscore (like y_myoption).
┌─────────────────────────────────────────────────────────────────────┐
│ /CJn_n_n │
└─────────────────────────────────────────────────────────────────────┘
This parameter overrules the options for ARJCompression options in
MTA.CTL. You must code the compression options just like you do when
running ARJ (or example -m1), but if you use more than one option,
you must NOT separate them with a space but with an underscore (like
-m1_myoption).
┌─────────────────────────────────────────────────────────────────────┐
│ /CHn_n_n │
└─────────────────────────────────────────────────────────────────────┘
This parameter overrules the options for LZHCompression options in
MTA.CTL. You must code the compression options just like you do when
running LZH (or example /A+), but if you use more than one option,
you must NOT separate them with a space but with an underscore (like
/A1_myoption).
┌─────────────────────────────────────────────────────────────────────┐
│ /CLn_n_n │
└─────────────────────────────────────────────────────────────────────┘
This parameter overrules the options for PKLITECompression options in
MTA.CTL. You must code the compression options just like you do when
running PKLITE (or example -b), but if you use more than one option,
you must NOT separate them with a space but with an underscore (like
-b_-n).
┌─────────────────────────────────────────────────────────────────────┐
│ /Z │
│ /Zfile │
└─────────────────────────────────────────────────────────────────────┘
You can assign a text-file to be added to ZIP, PAK and ZOO files when
you use the /Zfile option. [file] must be a valid file. You can (must)
supply path and drive to the file. Refer to AutoDescription in
MTA.CTL. /Z blanks the current setting of AutoDescription (if
set).
┌─────────────────────────────────────────────────────────────────────┐
│ /CARCOM or /CARCOMn │
└─────────────────────────────────────────────────────────────────────┘
When using /CARCOM, you out-rule the CarryComment option in MTA.CTL
(if any). When you want to include this option, you must supply this
switch with the valid CarryComment type (e.g. 1, 2 or 3).
┌─────────────────────────────────────────────────────────────────────┐
│ /AFB │
└─────────────────────────────────────────────────────────────────────┘
This is a toggle for the AddFilesBBS option. If present in MTA.CTL,
/AFB will turn it off and reversed.
┌─────────────────────────────────────────────────────────────────────┐
│ /P │
└─────────────────────────────────────────────────────────────────────┘
When you supply /P, MTA does not write to the MTA.LOG.
┌─────────────────────────────────────────────────────────────────────┐
│ /@[filename & path] │
└─────────────────────────────────────────────────────────────────────┘
You can supply the files to be converted by means of an external
file if you have more than will fit on the command-line (on when you
make MTA part of an automated environment). The filename you supply
must exist ! You also can supply the full drive and path information.
The file must be a ASCII flat-file, containing a file (path and
drive may be included but they will be stripped by MTA) in every
single line. The file (path and file) can be preceded by white spaces
and the line may contain more information, but this must be separated
from the filename with at least one space ! In fact the full-screen
chain creates such a file (MTA_MENU.$$$) that is processed by MTA
and deleted after processing has take place. If you use /@, the file
you supply is NOT deleted !
The ASCII file CAN contain wildcards but unlike the command-line
execution, extensions are NOT expanded with '.*' if no extension
is available.
┌─────────────────────────────────────────────────────────────────────┐
│ /IPpassword │
└─────────────────────────────────────────────────────────────────────┘
When you convert one or more encrypted files to new archives (they must
all have the same password), you must include /IP with the correct
password. /IP has no counterpart in MTA.CTL. You must always supply
this option manually.
┌─────────────────────────────────────────────────────────────────────┐
│ /OPpassword │
│ /OP@ │
└─────────────────────────────────────────────────────────────────────┘
When you want MTA to create encrypted archives (ARC, PAK, PK(ARC)(PAK),
ZIP and DWC targets), you must supply /OP with the password you want
to use. There is no counterpart for this switch in MTA.CTL. For ZIP
and DWC targets you can use a 'trick' to supply a fixed password in
MTA.CTL by using the ZipCompression and/or DWCCompression options.
ZipCompression can be set to something like '-ex-smypassword' and
DWCCompression to 'zgmypassword' where 'mypassword' is the password
you want to use.
With /OP you can use some special generic parameters. These parameters
are replaced by MTA to create a new password. They are:
$JD Julian date-number. This is the day-number since the start
of the current year, so 01/01/1991 has a julian datenumber
of 001, 01/02/91 has julian datenumber 032;
$JY Julian year-component. These are the last 2 bytes of the
current year, so 91 in 1991;
$ND The current day (2 positions always);
$NM The current month (2 positions always);
$NY The current year (4 positions always);
$FN The current filename (only name, not extension)
So /OP$JY$JDFile will create password 91112File on 22th of April 1991
and /OPFile$ND$NM$JY will create File220491 on the same date. You can
mix parameters and text as long as there are no spaces in the password;
I strongly advise NOT to use this trick but to supply /OP (in the
'worst' case you can create a batch-file with a fixed /OP switch).
You can log the files that are worked on with /OP if you set the
NormalPasswordListPath option.
/OP@ is a special option to create password protected (encrypted)
target files but now MTA will create a RANDOM password. The password
MTA has used on a certain file (each file gets a NEW random password)
is listed in the file you supplied in the RandomPasswordListPath
option or in MTA.PWD (in the supplied path or the current directory).
┌─────────────────────────────────────────────────────────────────────┐
│ /E │
└─────────────────────────────────────────────────────────────────────┘
When you supply /E, MTA does not write to the MTA.ERR file (error
log).
┌─────────────────────────────────────────────────────────────────────┐
│ /DI │
│ /DE │
│ /DD │
└─────────────────────────────────────────────────────────────────────┘
You can disable the inclusion (/DI) or exclusion (/DE) of files
from the converted files even if the options in MTA.CTL are set.
/DD will disable any DoNot statement in MTA.CTL. All supplied DoNot
statements will be skipped.
┌─────────────────────────────────────────────────────────────────────┐
│ /E1 │
│ /E2 │
│ /EB │
│ /EG │
└─────────────────────────────────────────────────────────────────────┘
These options disable the working of the exits. /E1 disables the
ExitBeforeFill exit, /E2 the ExitAfterFill, /EG the common
ExitAfterCompress exit and /EB the ExitBetweenConversion exit.
┌─────────────────────────────────────────────────────────────────────┐
│ /U │
│ /Ufilename │
│ /Udrive:path\filename │
└─────────────────────────────────────────────────────────────────────┘
This option toggles the FilesBBS option. If this option is not set,
using /U sets the option. If it was set, using /U disables it.
/U using to set the FilesBBS option, sets this option to search for
the file with the name FILES.BBS.
If you want to set the FilesBBS option AND you want to change the
name of FILES.BBS to something else, you must use the second type
(/Ufilename). [filename] is used for the search and not FILES.BBS.
If you have only one descriptive file on a fixed location, you must
use the third option to set the FilesBBS option. In this case you
supply both the path (drive) and the filename to MTA.
│┌─────────────────────────────────────────────────────────────────────┐
││ /NOOLD │
│└─────────────────────────────────────────────────────────────────────┘
│When you have added the DelOldFiles option (and optionally the option
│DelOldPath), /NOOLD can be used to set these options to OFF.
│
┌─────────────────────────────────────────────────────────────────────┐
│ /UPGRADE │
└─────────────────────────────────────────────────────────────────────┘
This option toggles the OnlyUpgrade option. If this option is not set,
using /UPGRADE sets the option. If is was set, using /UPGRADE disables
it.
┌─────────────────────────────────────────────────────────────────────┐
│ /NOMOUSE │
└─────────────────────────────────────────────────────────────────────┘
This option tells MTA that mouse-support should be shut off. It only
has a meaning when a mouse-driver is active and a mouse connected.
The in-between option, available in MTA.CTL, is not supported as a
command-line switch.
┌─────────────────────────────────────────────────────────────────────┐
│ /VMODE or /VMODE [mode] │
└─────────────────────────────────────────────────────────────────────┘
Used as /VMODE it will reset any VideoMode as set in MTA.CTL. Used as
/VMODE [mode] it will instruct MTA to switch to [mode] independent of
any available VideoMode option in MTA.CTL.
┌─────────────────────────────────────────────────────────────────────┐
│ /EXTTST │
└─────────────────────────────────────────────────────────────────────┘
/EXTTST is a toggle. If ExtendedTesting is not available in MTA.CTL,
the command will set it to on, otherwise it will set it to off.
┌─────────────────────────────────────────────────────────────────────┐
│ /SFX │
└─────────────────────────────────────────────────────────────────────┘
This option toggles the SFXFILES option. If this option is not set,
using /SFX sets the option. If is was set, using /SFX disables it.
┌─────────────────────────────────────────────────────────────────────┐
│ /LEA │
└─────────────────────────────────────────────────────────────────────┘
This option toggles the KeepAbnormalExtensions option. If this option
is not set, using /LEA sets the option. If it was set, /LEA disables
it.
┌─────────────────────────────────────────────────────────────────────┐
│ /TIM │
└─────────────────────────────────────────────────────────────────────┘
This option disables any RunTime parameter in the MTA.CTL file. This
comes in handy with BBS setups where the SysOp wants to use MTA as a
stand-alone program.
┌─────────────────────────────────────────────────────────────────────┐
│ /MAR │
└─────────────────────────────────────────────────────────────────────┘
This option toggles the NoMarked option. If this option is not set,
using /MAR sets the option. If is was set, using /MAR disables it.
┌─────────────────────────────────────────────────────────────────────┐
│ /MAH │
│ /MAHstring │
└─────────────────────────────────────────────────────────────────────┘
This option can be used to change the MarkHeader option. When you
use /MAH, MarkHeader is set to the default.
If you use /MAHstring, the mark-header is set to [string]. [string]
must be 6 bytes or shorter and spaces are not allowed.
┌─────────────────────────────────────────────────────────────────────┐
│ /MAS │
│ /MASstring │
└─────────────────────────────────────────────────────────────────────┘
This option can be used to change the MarkString option. When you
use /MAS, MarkString is set to the default.
If you use /MAHstring, the mark-string is set to [string]. [string]
must be 14 bytes or shorter and spaces must be coded as underscore
characters.
┌─────────────────────────────────────────────────────────────────────┐
│ /UNMARK │
└─────────────────────────────────────────────────────────────────────┘
This option is used as a toggle. If UnMark is set in MTA.CRL, /UNMARK
will set it to off otherwise it will set it to on.
┌─────────────────────────────────────────────────────────────────────┐
│ /OOA │
└─────────────────────────────────────────────────────────────────────┘
This option activates the MTA optimize option. All files are optimized
to the smallest amount.
┌─────────────────────────────────────────────────────────────────────┐
│ /AIA │
└─────────────────────────────────────────────────────────────────────┘
This option toggles the NoArcInArc option. When this option is ON, it
will be set to OFF, otherwise it is set to ON;
┌─────────────────────────────────────────────────────────────────────┐
│ /KEEPAV │
└─────────────────────────────────────────────────────────────────────┘
This option toggles the KeepAV option. When this option is set to ON,
KEEPAV will set it to OFF and reversed.
┌─────────────────────────────────────────────────────────────────────┐
│ /KEEPAV │
└─────────────────────────────────────────────────────────────────────┘
This option toggles the KeepVolLab option. When this option is set to
ON, KeepVolLab will set it to OFF and reversed.
┌─────────────────────────────────────────────────────────────────────┐
│ /ALL │
└─────────────────────────────────────────────────────────────────────┘
This option toggles the AllDisketteFiles option. When this option is
set to ON, /ALL will set it to OFF and reversed.
┌─────────────────────────────────────────────────────────────────────┐
│ /BAUD[baudrate] │
└─────────────────────────────────────────────────────────────────────┘
Tell MTA to work on [baudrate] for remote logging. This option only
works when /REMOTE is used.
┌─────────────────────────────────────────────────────────────────────┐
│ /COM[comport] │
└─────────────────────────────────────────────────────────────────────┘
Tell MTA to work on [comport] for remote logging. This option only
works when /REMOTE is used. If COM-port - 1 does not equal the FOSSIL
port to use, than you must use /FOSSIL.
┌─────────────────────────────────────────────────────────────────────┐
│ /FOSSIL[fossilport] │
└─────────────────────────────────────────────────────────────────────┘
Tell MTA to work on [fossilport] for remote logging. This option only
works when /REMOTE is used. If COM-port - 1 does not equal the FOSSIL
port to use, you must use this option. Otherwise you can also use the
/COM option.
┌─────────────────────────────────────────────────────────────────────┐
│ /REMOTE │
└─────────────────────────────────────────────────────────────────────┘
When this option is set, MTA will give a small progress log on the
remote side. This remote session is defined with the baudrate (/BAUD)
and port (/COM or /FOSSIL) or the equivalent options in MTA.CTL. Only
when /REMOTE is used, these other options will have a meaning. You can
put them in MTA.CTL and they will only be activated when /REMOTE is
set.
┌─────────────────────────────────────────────────────────────────────┐
│ /STOSIZ │
└─────────────────────────────────────────────────────────────────────┘
This option toggles the StoreSize option in MTA.CTL. When set to on,
/STOSIZ will set it to off and reversed.
┌─────────────────────────────────────────────────────────────────────┐
│ /| │
└─────────────────────────────────────────────────────────────────────┘
Finally there is one switch YOU MAY NEVER USE YOURSELF. I mention this
switch, because some of you would find it out, even if I did not
mention it and I think you can better know what it does.
A detailed description is available in the chapter 'The MTA-child'
(chapter 3.33).
MTA in combination with unattended operations need some special care.
Also there are several switches and options available to make the
work easy. A detailed description of unattended operations is available
in the chapter 'MTA and unattended operations' (chapter 3.34).
4.2 Aborting MTA
────────────────────────────────────────────────────────────────────────
There is only one way to abort MTA before it's normal end. When MTA
is busy, you can press [ESC]. MTA will (in time) display that it
will terminate soon and terminates after the CURRENT file is converted
You can release the termination by hitting any other key. In that case
MTA will continue.
The termination option does NOT work with the /D switch !!
Apart from terminating with the ESC-key, you can limit the execution
time with the RunTime option (see MTA.CTL).
Termination with the mouse (if you do not use /D) is also possible
and a special form of termination with ITS is also supported;
4.3 LOG file
────────────────────────────────────────────────────────────────────────
MTA makes a log of almost everything (unless you specify NoLog in the
MTA.CTL file or supply /L as a runtime switch).
You can browse thru the log with a program like V.Buerg's LIST or with
the 'good old' TYPE command.
The log-style can be adjusted to the users need with three different
options (LogStyleFormat, LogDateFormat and LogTimeFormat). Also you
can combine all three possible logs (the 'normal' log, by default
called MTA.LOG, the error log, by default called MTA.ERR and the
password log, by default called MTA.PWD) into one log-file because
MTA will open AND close the log for every record it has to write to
the log !
Depending on the number of files MTA has to convert, the MTA.LOG file
can get very large. I have supplied a program (MTL.EXE) to solve this
problem.
With MTL.EXE you can make a statistical review of your log-file. In
addition, you can instruct MTL to shorten the log-file. MTL will
rewrite the MTA.LOG file with only the total counters so far. The next
run MTL will 'see' these counters again and adjust the current counters
with these values.
MTL depends on the format of the log-file. Therefor you should not make
any changes to the current log-file, but make a copy of the file and
work on the copy and not the original. MTL IS able to detect a
customized log and will adjust itself to search on the right places.
Also, records of different kind can be available in the log (in case of
a mailer or BBS program). MTL will skip these records but remember. If
you want to clean the log with MTL, MTL will also remove all NON-MTA
records from the log !
If you get tired of the log, delete it, and MTA will create a new one.
When MTA calls itself as a child invocation, the child MTA does not
do any logging !
4.4 The (de)compressors
────────────────────────────────────────────────────────────────────────
As already stated, MTA depends on the ORIGINAL compression/decompression
programs. As you have seen, you can instruct MTA to look for these
programs in fixed directories.
If you don't supply fixed paths, MTA will search in the current
directory, the directory where MTA.EXE is in (only DOS 3.xx) and the
DOS-path for these files. When you own a rather slow HDU (or machine),
it could take several seconds for MTA to search for all these
(de)compressors. In these cases, use the MTA.CTL file to point out
where these programs are.
There is one little trick you should know of. Of course you know that
there was a 'war' going on between SEA and PKWare. NoGate's PAK (also
a very nice program) can do best of both worlds and more.
I am no judge, and I will not make any judgments but I find that I
should respect the results of the 'war'. I can imagine that some (or
many) of you have always used PKWare's program's and don't own a copy
of ARC (not even a evaluation copy), but others have both programs.
PAK.EXE is downward compatible with (old) PKWare and PKWare is downward
compatible with ARC.EXE. Depending on the internal structure of the
source file, MTA will take ARC.EXE first, then PKWare and then PAK.EXE.
Concerning the destination options, when you ask for a destination
(CompressionType) of ARC, MTA will only work when you own a copy of
ARC.EXE. It is NOT possible to create a destination of ARC with the
PKWare or Nogate programs !
PAK.EXE is also compatible with some versions of ZIP. I have had a
number of errors on the PAK-ZIP combination. Also ZIP is for PK(UN)ZIP
and not for PAK to convert to normal files. Unless multiple users ask
for ZIP-support with PAK, I will not include it inside MTA and you
must use PKUNZIP to decompress a ZIP file and PKZIP to create one.
MTA will search for the following programs if you don't supply the names
in the MTA.CTL file:
- ARC.EXE (SEA);
- PKPAK.EXE/PKUNPAK.EXE (PKWare old);
- PAK.EXE (NoGate);
- DWC.EXE (Dean W. Cooper);
- ZOO.EXE (R. Dhesi);
- LHARC.EXE or LHA.EXE (Yoshi);
- LARC.EXE (Miki);
- PKZIP.EXE/PKUNZIP.EXE (PKware new);
- MDCD.EXE (MD);
- ARJ.EXE (ARJ);
- HYPER.EXE (HYP);
- PKLITE.EXE (PKLITE)
4.5 Executing MTA
────────────────────────────────────────────────────────────────────────
MTA is started in the directory where the source-files are. Up to now,
there is no (recursive) sub-directory support. The syntax is:
MTA [filespec] .. [filespec] [switches]
or
MTA [switches]
[filespec] must be a valid DOS filespec (wildcard included) like *.ZIP,
ABC*.* or MYFILE?.?RC.
You can supply as many [filespec] values as will fit on the command
line. MTA will convert up to 1000 files that match the filespec.
When you supply [filespec] on the command-line.
If you include a directory (and or drive) in one or more of the masks,
then MTA will use the FIRST path you entered and ignores the rest if
they are different. Also the DefaultPath option becomes obsolete when
you include a directory in the mask.
If you enter MTA E:\ZIP\*.ZIP E:\ZOO\*.ZOO, then MTA will convert
*.ZIP and *.ZOO files in E:\ZIP\. The directory E:\ZOO is ignored.
If you want such combinations to work, you must include DefaultPath
options and/or use one of the LVLx command-line switches.
If you do not supply an extension, MTA adds .* to the filespec, so
the filespec MTAWOW is extended to MTAWOW.*.
If you don't supply [filespec], you will be presented a full-screen
tag-menu of the path you want to work on (only the first if you have
more than one DefaultPath option). You can tag (with the space-bar)
files for converting. You can un-tag them by pressing the space-bar
again. Also fast 'bulk-tagging' is available. Press <F1> in the
tag-menu and you get a list of all available tag-functions.
Only the first 1000 selections (Pfeew, that's a lot) will be converted.
The full-screen is displayed with a chained part of code that MTA will
call itself. This is done to keep memory consumption as low as possible
while actually converting the archives. One word of caution. If you
have included more than one DefaultPath option and you are running the
full-screen tagging, only the first of these paths is taken. The
remaining paths are skipped !!!!!
See the documentation on MTA.CTL and the run-time switches for a
complete understanding of MTA's functions.
4.6 Errors
────────────────────────────────────────────────────────────────────────
Of course no one is perfect, so it is possible that you (or I) made
a mistake. When MTA blows sky-high, you could get a message (only
when needed) about some directories.
When MTA starts its process, it creates a temporary path UNDER the
path you supplied in MTA.CTL (MTATempPath) as a 8 byte HEX value of
the current time/date or this path is created UNDER the current
directory or the path you supplied with /W.
When MTA gets an error at decompression (memory or an error in the
archive), the original archive is placed in this temporary directory
or in the path supplied with the MTAErrorPath option. Before placing
the original archive in this path, MTA will first clean the temporary
directory from already extracted files (also the temporary directory
is removed if MTAErrorPath is active).
When MTA gets an error at compression (memory in most cases), the
original files are kept in the temporary directory. The original
archive is already gone, so you must create the new archive yourself
after MTA is terminated.
Before decompression takes place, MTA will first take a look at
the drive-space of the drive that contains the temporary directory.
If there is not twice the space of the UNcompressed archive available
on this drive, MTA will skip the conversion. Why twice the space, you
ask yourself:
- The original archive can itself contain archives. These have to
be decompressed also;
- The source can be bigger than the original target (converting
ZIP to ARC for example);
These two factors must be taken care of. Taking twice the space is
still no 'fail save' mechanism but it should do in 99% of the cases
where drive-space is low. Please observe that MTA removes the original
archive after decompressing that archive (without error) to save
space on the drive.
Most of the errors explain themselves. The only tricky one is 'Error
(xx) in shell'. The 'xx' is a number. In fact it is the Dos Error number
(not errorlevel). You can find them in most DOS bibles. The most
frequent one is 8 (not enough memory).
Negative numbers are caused by internal errors. If you can not resolve
them yourself, please inform me, I will try to find out the reason.
From release 4.04 and up, MTA makes some noise about files with a
valid compression extension (like ARC, PAK, ZIP, DWC and LZH/S) but
failed the 'test the compressed file' test. Possible causes are:
- The file is corrupted (sometimes the header only).
Try to decompress the file with the belonging decompression program
If it decompressed, delete the original one and create a fresh
compressed file and try again;
- The file is wrong
Some people rename 'normal' files to one of the above extensions.
There is nothing against doing this, but it will confuse MTA like
hell (not to mention other people who get a copy of that file from
you). Try another extension or remove these files from the directory
MTA is working on;
From release 6.11 and up, MTA has introduced a new source of possible
errors. MTA is now able (when you set the right option in MTA.CTL)
to work on SFX (self extracting) compression files in the formats ARC
(all), PAK, ZIP, ARJ, HYP, LZH and LZS.
MTA has to look inside such a file to deduce if it is an SFX-file.
(only COM and EXE). Test are made of several combinations inside
the file, but I can imagine that MTA could deduce a file to be
SFX while it is not.
In this case, strange things (from disk-full to I/O error) could
happen. Only use the SFX option when converting SFX files otherwise
leave it off !
One final word about unattended BBS operation. Starting with 6.50
MTA uses some other internal structures (think of the new name for
the temporary directory) to leave BBS operation as undisturbed as
possible. Older version worked unattended but had one major drawback.
When MTA aborted as a result of an invalid compression file, all
next runs of MTA would abort because they saw the same file again
and again. That's why this file is moved to the temporary directory.
When running in unattended operation, do NOT use the MTATempPath
option but let MTA work out a path-name. The path-names MTA creates
are logged in the MTA.LOG file.
MTA 12.50 now fully uses memory in a dynamic way. This means that
all tables are stretched and you now can include 255 files, exclude
255 files, work on 255 different paths and so on. This is all managed
dynamically by MTA, so when you use entries, MTA will use less memory
This also can mean that you can overrun the limits of your PC's memory
If you get a memory-error message you must first look into DoNot,
IncludeFile, ExcludeFile and Defaultpath options.
Consider to merge some of the masks in DoNot or pack all your included
files into an archive and add this archive to your new files.
Under normal conditions a 640K PC should have enough memory to use
all options to the limits.
All this could give you the impression that you should thank the
Lord when MTA runs ok. THIS IS NOT THE CASE. I have converted
around 3000 files on 200 diskettes and 2 HDU's myself again and
again using MTA and so far only 4 errors occurred (2 of them in the
SFX support). All these (and more) are already fixed in this release.
4.7 Specials
────────────────────────────────────────────────────────────────────────
MTA preserves memory for executing the shell and uses some space
of its own. To use as limited memory as possible, there is a limit
to the number of files MTA can handle. In any of the given used
directories, you can have a maximum of 1000 files (do YOU have a
315 MegaByte HDU, I don't..).
With the current settings MTA will use 200K. The remainder of the
memory can be uses for the shell's. Normally this leaves enough
memory for all the (de)compressors and/or the shells. But in critical
cases (ARJ to name one), you can use the swapping option to give back
enough memory to the compression program.
MTA uses a little trick when detecting name-like filenames. Imagine
you have a TEST.PAK, TEST.LZH and TEST.DWC in your directory and
you want to convert to ZIP.
The first file is ok (TEST.PAK -> TEST.ZIP), the second gives a little
problem (MTA can not make another TEST.ZIP. If MTA should do so, all
the files in MTA.LZH are added (worse updated !) in the first TEST.ZIP)
to work around. MTA warns the user and will create TEST.ZI1. The third
is converted to TEST.ZI2.
All these actions are reflected on the screen with a message and in the
MTA.LOG file.
As you already saw, MTA has its own touching system. This system is
triggered with the TOUCHHIG, TOUCHLOW or TOUCHCUR options in the
MTA.CTL.
If you would like to leave the time/date stamps as is, you must not
supply any of the above options !
When MTA searches for the (de)compression programs, it will not be
confused by the READ-ONLY attribute that some users use to protect
their programs !
MTA (all versions before 12.05) contain a bug that could be 'mis-used'
if someone knew how to do it. This is corrected in MTA 12.05.
4.8 Very special notes to read and not forget
────────────────────────────────────────────────────────────────────────
Please read some notes on LHARC and LHA about the marking of such
files.
Another problem that occurs with the LHA (LHARC 2.xx) implementation
is the backward compatible archive format. If a user still uses an
old LHARC 1.13 (or lower) and that user gets a new LZH file (with the
2.xx compression), LHARC 1.13 will give error messages about unknow
compression techniques BUT does NOT set the errorlevel to something
higher than 0 (everything OK). In that case, the following will happen
when MTA tries to convert such an archive:
- MTA calls LHARC;
- LHARC reports 'unknown compression method' on some or all (!) files
and returns with 0 (ok!);
- MTA deletes the original archive (everything went ok, didn't it ?);
- MTA starts the new compressor. That compressor will not find all
the files (worse, because your new archive is incomplete) or will
find no files (a relief because now MTA reports an error);
Get the picture ? Something more than a flaw. One of my beta-testers
(Hanstheo Wolf) has simulated this problem with many files and did
come to the conclusion that there could be more problems of this kind.
In fact, when users start to experiment with clone-programs that give
a shell above a real archiver, or when the original archiver is repla-
ced with a clone, these problems could occur.
In the above case (and I suggest you to use ALWAYS when you still use
the LHARC 1.xx version) you can set the option ExtendedTesting in the
MTA.CTL file to on !
What does ExtendedTesting do. First the flow of operations and the
place where Extended Testing comes in the picture:
- MTA selects a file to decompress and starts the decompress;
- If the errorlevel is non-zero, the archive is marked in error and
moved to the error-directory and MTA starts with the next archive;
- After decompressing, MTA starts the extended testing;
- If extended testing reports an error, MTA moves the original archive
to the error-directory and starts the next archive;
- MTA deletes the orginal archive and goes on (compressing and such);
Now what does Extended Testing do:
- It reads the original archive and collects the total of all uncom-
pressed sizes;
- It reads the uncompressed files and also collects the total of all
these file sizes;
- It compares both sizes. If different, MTA is reported that the
archive is decompressed in an invalid way (missing files without
any report of errors by means of an errorlevel), if equal, the
file is decompressed in a normal way;
The extra reading of the archive and the decompressed files will cause
some loss in speed. But savety is optimal !!
┌───────┬─────────────────────────────────────────────────────────────┐
│ 5 │ Version information and credits │
└───────┴─────────────────────────────────────────────────────────────┘
5.1 The BETA-team
────────────────────────────────────────────────────────────────────────
│Look into the file SUPPORT.MTA for a full list of all beta-testers.
5.2 Credits
────────────────────────────────────────────────────────────────────────
Thanks to the following people:
- All paying, registered users. You make it possible to enhance MTA
with nice features;
- All users who did write me a message and/or sent me a postcard;
- The BETA-team (a very warm and loud applause !);
5.3 Version history
────────────────────────────────────────────────────────────────────────
┌───────┬────────────────────────────┐
│ 11.xx │ Sampled release info │
└───────┴────────────────────────────┘
■ Bug fixes;
■ Added FilesBBSFormat option, CarryComment option, alternate CTL
support, combination of /M and /D allowed;
┌───────┬────────────────────────────┐
│ 12.xx │ Sample release info │
└───────┴────────────────────────────┘
■ Bug fixes;
■ All tables to 255 entries, tag-menu, /@, /MD, AltDisplay, internal
swapping (SwapPath, NoSwap), MDCD support (MDPath), IncludeCTL,
AV-aware, encryption aware, configurable log-file, MTAErrorPath,
extended help, mouse aware, ITS aware and many, many more changes;
┌───────┬────────────────────────────┐
│ 13.01 │ Major release │
└───────┴────────────────────────────┘
■ Fixed a bug in the display with combinations of AV'ed and non
AV'ed file. Fixed;
■ Fixed a flaw with the CarryComment option. As I have found out,
several Sysop's use special utilities to add files to their
FILES.BBS that do not use the, more or less, standard. There was
NO way to tell MTA what to do with entries that use the format
'F.E comment' (where F.E is the filename). These entries will
have a 'floating' start of the comment and do not always begin
on a fixed position. This is changed in this release of MTA.
The FilesBBS option is changed to support not only a position,
but also a starting ITEM number for the comment-part. In fact
MTA uses by DEFAULT item number 2 in the line as the comment.
Reported by: Hanstheo Wolf
■ Worked around problems in the shell window, where the system
could crash when the mouse was active. When this happens, the
'Nomouse Window' option must be used to keep control over the
mouse in MTA and its pick-list itself and to shut off the
mouse when the (de)compression window comes active;
Reported by: Joerg Dassler
■ Fixed a flaw with the NoMouse (/Nomouse) option. When used, MTA
did in fact display the mouse 'symbol' for a short moment and
mouse control was also available for a short moment. This is
fixed. Also the NoMouse option now also has a meaning inside
the pick-list.
Reported by: Joerg Dassler
■ Reworked the 'windmill' while MTA was reading MTA.CTL. Now MTA
will display a flashing star. Parsing of MTA.CTL is now much
faster;
■ Added support for 4Dos <tm> descriptions. The CarryComment and
FilesBBS options are reworked in a way that MTA can now extract
the description from the 4Dos DESCRIPT.ION file (see FilesBBS
option);
■ Added support to add the description (and filename) from the
original archive into the file as pointed to by the FilesBBS
option. This option is also 4Dos-aware;
■ Added support to 4Dos in cases where MTA moves files to and
from directories. When the 4DosAware option is available in
MTA.CTL, MTA will use the 4DOS MOVE command and not it's own
internal move;
■ Made MTA aware of larger displays. EGA and VGA users should now
have no problems with MTA in 43/50 lines modes. MTA will, under
special conditions, also use the full screen in the DOS-shell;
Reported by: Joerg Dassler, Dirk Astrath
■ MTA is not free anymore. Look for details in UPGRADE.MTA if
you registered earlier. Read REGISTER.MTA when you are new
to MTA. Registered users of lower versions will get a reduction.
■ Added the RegistrationName and RegistrationKey options to support
registration keys;
■ Added introduction screens to MTA, MTL and MTM. You can still use
MTA stand-alone, but in that case a 75 seconds delay is present;
┌───────┬────────────────────────────┐
│ 14.01 │ Major release │
└───────┴────────────────────────────┘
■ When MTA detected an archive inside an archive for which you did
not supply a archiver (no ???Path option), MTA would move this
archive to the error-path, then swap back to the parent MTA and
would compress the new archive without this file. This was a
nasty bug. Fixed;
Reported by: Dirk Astrath
■ When the user wanted to terminate MTA (hitting ESC), MTA would
not stop if multiple directories had to be processed. This is
now fixed.
Reported by: Many users, beta-team
■ Touching would (in some cases) go wild. This was caused by the
fact that MTA also used the included/excluded files for the
test. These files would normally have a recent date, so all
archives would get this high date (TouchHig).
Reported by: Many users
■ With the introduction of volume-labels in PKZIP, MTA would report
a file with invalid attributes when the ReportSpecialAttributes
option was set to on. This file was also altered to a normal
file and sometimes gone after this change. This is fixed. MTA
will now ignore files with a attribute VOLUMEID.
Reported by: Hanstheo Wolf
■ If MTA was unable to obtain the PROMPT environment variable from
your master environment, MTA would use not prompt at all. Now,
when MTA can not obtain a prompt, $P$G is substituted and when
your prompt does not contain $P or $G, MTA will add this to the
prompt even when you did not ask for it. This is done because it
could be the case, you are left in a (for you) unknown directory
and this little trick will fix that. The $P$G is only used inside
MTA. When MTA is finished, you get your old prompt back (if any);
Reported by: Dirk Astrath
■ If MTA was called with the /CTL command-line option, and this option
was not the last command in the command-line, MTA would abort with
something like '[next command] file not found'. You had to use the
/CTL as the last option. This is fixed;
Reported by: Hanstheo Wolf and Author
■ MTA contained a little flaw. The password-list (MTA.PWD or something
supplied by user) was longer than 80 bytes. In some BBS implementa-
tions, this caused a problem.
Reported by: Hanstheo Wolf
■ MTA could hang on large archives. When the total number of DISPLAYED
bytes inside the (de)compress shell was more than a certain number,
MTA would hang the machine. See StowBuffer option. Fixed;
Reported by: Author
■ Added a LogStartStyleFormat option to create extra log-records at
the start of the new log. Also the LogStyleFormat option is en-
hanced with ^M to reflect a CRLF combination. This feature is al-
so added to the LogStartStyleFormat;
Suggested by: Dirk Astrath
■ When a compressed file is in error, MTA will now COPY (not MOVE)
the entry in the FILES.BBS-alike file to a file of the same type
inside the error-path. This only works when the FilesBBS option
is set to on;
Suggested by: Dirk Astrath
■ Somewhat enhanced the ZIPAutodescription option to make it usable
for ZIP, ZOO and PAK. Renamed the option to AutoDescription and
made the old version obsolete in this release;
Suggested by: Dirk Astrath
■ Changed the PasswordListPath option to RandomPasswordListPath and
made the first obsolete. Also added a NormalPasswordListPath op-
tion to MTA.CTL to log files with a normal password (supplied
with /OPpassword);
Suggested by: Hanstheo Wolf
■ Added full recursive support to all archivers that support such a
feature. Added the SubstDrive option;
Suggested by: Hanstheo Wolf
■ Added full EGA/VGA support to MTA (in all shells and in MTA itself)
so users with default enlarged screens don't have to look to a
very little MTA, running in the upper left corner of their huge
screen.
Suggested by: Joerg Dassler, Reinier de Groot, Hanstheo Wolf and
Dirk Astrath
■ Older releases of MTA (nobody is perfect) could not detect arc-
in-arc files when they did not occur in the (relative) root of
the archive, so when a ZIP-file contained TEST.ME and \NEW\TEST.LZH
(the directory \NEW also stored in the ZIP), MTA did not detect such
a situation and the TEST.LZH was not converted to ZIP. This is now
fixed.
Suggested by: Dirk Astrath and author
■ MTA could add funny lines with trash in the FILES.BBS-alike file
along with the CarryComment statement. This occurred with new
files that were not already present in this file. This is fixed;
Suggested by: Hanstheo Wolf
■ Added /LVL0 to process all files in the current directory, over-
ruling any DefaultPath option. /LVL0 is the same as /W without a
directory-name.
Suggested by: Author
■ Added /LVL1 to process all files in all sub-directories under the
current directory and NOT including the current directory itself,
thus also overruling any DefaultPath option.
Suggested by: Hanstheo Wolf
■ Added /LVL2 to process all files in all sub-directories under the
current directory AND INCLUDING the current directory itself, thus
also overruling any DefaultPath option.
Suggested by: Hanstheo Wolf
■ Added /LVL3 to process all files in all directories on the current
drive (starting from the root-directory), thus also overruling the
DefaultPath option(s).
Suggested by: Author & Hanstheo Wolf
■ Added the name of the directory that MTA is working on in the
alternate display (the last 22 characters, or the last 24 when
working in 132x?? extended text mode).
Suggested by: Author
■ MTA could display 'path not found' messages in the little shell.
This is fixed.
Suggested by: Reinier de Groot
■ MTA could seem to hang with a AV-ed file when comments were
added and/or deleted. Could only occur under 4Dos. This is
(more or less) fixed (see notes on MTA and 4Dos).
Suggested by: Reinier de Groot
■ MTA could seem to hang with a AV-ed file, when deleting files
from the archive (ExcludeFile option). This could only occur
when the filename started with a '-' (like --------.---). This
is also fixed.
Suggested by: Hanstheo Wolf
■ Fixed some display errors in /D option.
Suggested by: Author
■ Changed the chained file MTA.CH1, called to display a pick-list.
The pick-list will now test all files in the directory and will
only display archives, independent of the extension. In this way
you get .SDN, .SDS, .OWN or whatever files in the list if they
are archives and even when you did set SFXFiles (/SFX) to off !
Suggested by: Hanstheo Wolf
■ Removed the 4DosAware option and changed it to the Not4DosAware
option. MTA will detect a full 4Dos environment itself. This
can now be switched off, rather than switched on.
Suggested by: Author
■ MTA's file-access if fully changed. When SHARE.EXE is present in
the PC (networks, multitasking environment like DesqView and
Windows), MTA will test and place the correct locks and sharing
on the accessed file(s). If a file is denied by SHARE, MTA will
wait until the file is released. The wait-period is configurable
in MTA.CTL by means of the ShareWait option.
Suggested by: Dirk Astrath
■ You can now, officially, run multiple copies of MTA at the same
time. You must make your own checks to overcome any problems that
would occur when you start to convert the same files in the dif-
ferent copies.
Suggested by: Author
┌───────┬────────────────────────────┐
│ 14.05 │ Minor and Bug release │
└───────┴────────────────────────────┘
■ MTA could not detect some LZH SFX files and would abort on some
LZH (normal) files. This was caused by a bug in my CFI routine
and has (finally) been fixed;
Reported by: Dirk Astrath, Reinier de Groot
■ Some bad characters could be displayed at the end of MTA's run.
This is fixed.
Reported by: Klaus Schoelhorn
■ MTA will do some internal and external tests. Both environments
are checked to see if MTA is capable to run. In strange cases
this could result in a runtime-error. In this case, please
contact the author. This testing will delay MTA for around a
second (at the start) on a slow machine.
■ Added the ARJ protocol. This is still temporary until ARJ is
released in general, but 0.13a (alpha release) is implemented
in MTA to make testing of this very 'dense' protocol easier.
┌───────┬────────────────────────────┐
│ 14.06 │ Minor and Bug release │
└───────┴────────────────────────────┘
■ MTA is now aware of ARJ release 0.14 (and 0.13 for that matter).
Some bugs in CFI-routines fixed and made code faster and tighter;
■ MTA can now handle comments in ARJ files. All comment-related
options in MTA (CarryComment and so on) will now also work on
ARJ-files;
■ Added support for TEMP variable in the environment table. If TEMP
is set, MTA will use the supplied directory as the temporary
directory for the archivers. This directory can (and is) overruled
by the MTATemp option (if set). If the TEMP environment variable
is not complete (no drive, invalid path), MTA will skip the value;
■ Added new release of OPRO (1.03). Will have no effect on the
specifications but will fix some strange bugs.
┌───────┬────────────────────────────┐
│ 14.07 │ Minor and Bug release │
└───────┴────────────────────────────┘
■ The ARJCompression option was not passed to ARJ itself and was in
fact a dummy option. This is fixed;
Reported by: Gert Ensing
■ The switch /CJ to overrule the ARJCompression option is added to
MTA;
■ The /CD switch is enhanced (along with /CJ) to work the same way
as /CZ. Now multiple options can be added;
■ /CZ and /CD contained an error. Both option passed wrong parameters
to the MTA child (arc-in-arc);
■ Tightened the ARJ detection routines.
■ Added support for Frans Veldman's TBSCAN.COM
■ Added a reduction percentage to complement the total reduction
value.
Suggested by: Gert Ensing
┌───────┬────────────────────────────┐
│ 14.10 │ Minor and Bug release │
└───────┴────────────────────────────┘
■ Fixed some minor and one major flaw in the CFI-interface. This
caused MTA to hang with LHarc-files with paths inside. Also
files were detected as ARC or ARJ-files were not detected at
all (for the same reason);
Reported by: Gert Ensing, Rob Lirb, Reinier de Groot
■ Fixed a problem with ARJ-files with paths inside. ARJ would stop
and say 'Create directory ?'. This was a nasty problem when running
MTA in unattended mode. The ARJ '-y' switch is implemented now;
■ Changed the display again;
■ Changed MTA.CH1 (file selection chain). Hangups in MTA.CH1 would
occur as a result of the CFI problems mentioned earlier. MTA.CH1
will now display the files it is selecting, so in case of problems
you can now see the file causing the problem;
Reported by: Hanstheo Wolf, Gert Ensing
■ Added suport for the German HYPER compression program.
Suggested by: Reinier de Groot
┌───────┬────────────────────────────┐
│ 14.20 │ Minor release │
└───────┴────────────────────────────┘
■ Changed all the code to Turbo Pascal version 6.0, OPRO 1.10 and
Powertools 5.10. Thanks to TurboPower and Blaise for sending the
changed units in a hurry;
■ Under TP 6.0 the old swapper did not work anymore. Changed the
whole MTA programming concept and added a new swapper that is
both faster, more versitile and swaps less code.
■ Added options to make it possible to swap MTA before one or more
user selectable) archivers get control. Thios was needed to let
MTA run in small configurations with ARJ 0.20 and higher. ARJ
uses around 110 Kb more memory than the biggest archiver until
now (LHarc and DWC). 512K users and users with 808x machines
that have no higher memory areas to use for their DOS and/or
device drivers can now still run MTA.
Suggested by : Reinier de Groot and Author
■ Added the RA0 and RA1 parameters to let MTA work fine with the
new FILES.RA structure of Remote Access 1.xx (beta still).
Suggested by : Ruud de Bruin, Reinier de Groot
■ Changed ARJ support somewhat. Earlier versions of MTA could work
with older ARJ releases (0.13, 0.14) but this release needs 0.15
or higher because the -d -y combination is changed to -m (supported
in ARJ 0.15 and higher). Using MTA with older ARJ versions will
result in errors.
Suggested by : Author
■ Drives and directories are now supported in MTA. In earlier versions
you had to use MTA *.ZIP /WD:\MYPATH to convert *.ZIP files in the
directory D:\MYPATH\. Now it is possible to enter the following
combination MTA D:\MYPATH\*.ZIP. If more masks are supplied with
different directories, MTA will ignore the directories (NOT the
masks, so MTA E:\ZIP\*.ZIP E:\ZOO\*.ZOO will result in a conversion
of *.ZIP and *.ZOO files inside E:\ZIP\ and NOT in E:\ZOO\.
Suggested by : Almost everybody
■ Added support to PKLITE. Added PKLITEPath option and CompressionType
PKLITE and UNPKLITE. Also Added PKLITECompression option, along with
the /CL command-line switch;
Suggested by : Author
■ Added new coding to the tag-menu so users can now switch directories
and drives to do their selection;
Suggested by : Hanstheo Wolf and author
■ Added new coding to the tag-menu for PKLITE support;
Suggested by : Author
■ Changed the HELP-menu (MTA.CH2). This menu will now display any
changes to the previous version with a '│' in lightred before
the description of that changed option.
Suggested by : Author
■ Thanks to some hackers I had to change the key-support. It looks
the same but is different. Registered users should read the
REG_USER.MTA document and the separate letter they will receive
by mail;
┌───────┬────────────────────────────┐
│ 14.30 │ Minor release │
└───────┴────────────────────────────┘
■ Fixed a problem with directories on the command-line. The parse
routine did not work ok (normal paths and paths on options like
/W). When you included /WD: (or MTA D:*.ZIP), MTA would work on
the root of D: and not the current directory on D:. This is
fixed;
Reported by: Peter Schmidhofer
■ Fixed possible problems with child calls. In some cases MTA could
overrun the command-line of the child, causing strange things. In
some cases this could cause MTA to show the tag-menu when working
on a recursed ZIP. This is fixed. MTA will now report an error;
Reported by: Richard Lee
■ Fixed some problems in the documentation. Added chapters about the
child calls and unattended operations. Also some errors were re-
moved.
Suggested by: Dirk Kissing
■ Included LHARC 2.xx support. MTA can now convert old LHARC (1.13)
and new LHARC (2.05) LZH files;
■ Included LZHCompression option and the /CH command-line parameter
to give optimum support for LZH;
■ Changed the help support again. When you enter HELP (MTA /?) you
can now create a complete command-line when you hit ENTER while
you are scrolling in the HELP screens. After you are finished
(hitting ESC), MTA will display the constructed command-line on
the screen, so you can read it while you enter the MTA command
on the command-line;
Suggested by: Hanstheo Wolf
■ Fixed a documentation bug in the MTA.CTL example I supplied.
For all xxxPath options, the **CHA1420** at the end, caused a
problem for those who used this MTA.CTL as a template for their
own CTL-file;
Suggested by: Hanstheo Wolf, Wim Abels
■ Changed the unregistered behaviour somewhat. People who liked to
experiment with MTA before desciding to use it, would go nuts
with the 30 second delay. The sequence is now as follows:
- 10 seconds delay (always);
- 20 seconds delay unless you enter the supplied pass-code before
the 20 seconds are passed and while MTA is counting down;
- 60 seconds delay unless you press any key;
So nothing has changed for unattended use but testing MTA will
now only cost 10 seconds and 4 keystokes and not the whole 30
seconds and a keystroke.
The registration delay is NOT to punish people (that is why ALL
functions are available in unregistered mode and MTA is not
crippled in that mode) but more as a reminder to register the
product if you use it after the 30 days trial period. The develop-
ment of MTA costed months of labour, testing not to mention the
costs of keeping compilers and add-on's on the required level.
That won't say that I am not unwilling when several users from all
over the world complained about the long delays. This is why I have
changed it a bit;
■ Including a warning !! PLEASE, before you implement a newer version
of some archiver do a TEST !!
With LHARC 2.05 there were some reports on missing files with the
14.20 release (and earlier). This was caused by a change in the
internal archive structure of LZH files. This caused MTA to think
that the file was a LHARC 1.13 or (wors) LARC 3.33 file. The con-
version would sometimes work (stored files) and sometimes not
(trashed archive or a very small new archive). With the current
flow of files, a new MTA will be available within a week after
the new version hits the European market. Better not to do some
experiments (on expensive files) and to wait than to loose one
in your own experiments ! The versions below should (!) work on
MTA. The list is always correct for the given version.
┌───────┬────────────────────────────┐
│ 14.35 │ Minor and bug release │
└───────┴────────────────────────────┘
■ MTA would fail to convert a SFX ARJ-file. This is fixed;
Reported by: Many users
■ MTA would display ????? in its window for LHA 2.xx files.
Reported by: Chris Buys, Reinier de Groot;
■ Implemented a work-around in MTA for the LHA 2.05 size testing
error. Added UnMark (/UNMARK) option.
Reported by: Many users
■ Implemented a work-around in MTA for the LHARC 1.xx problem with
LHA 2.xx files. Can be used always as an extra safety. Added the
ExtendedTesting (/EXTTST) option;
Reported by: Hanstheo Wolf
■ Added ARJ security envelope support. Works the same as AV'ed
ZIP-files and is triggered with the KeepAV option;
Reported by: Many users
■ Added switching of video-mode. Added VideoMode (/VMODE) option.
Suggested by: Author
■ Added notice to users that it is impossible to compress the
programs MTA.EXE/CH1/CH2, MTL.EXE, MTM.EXE and MTZ.EXE. This
will change is the 15.xx release;
┌───────┬────────────────────────────┐
│ 14.36 │ Bug release │
└───────┴────────────────────────────┘
■ Fixed a bug that caused MTA not to work when both /D and the
ExtendedTesting option were active. MTA would report an error
on every archive;
■ This is a in-between release. Only MTA.EXE is changed. All
other programs keep the 14.35 release !!!!
┌───────┬────────────────────────────┐
│ 14.40 │ Minor release │
└───────┴────────────────────────────┘
■ Fixed a problem with error-log processing in combination with
share. This could cause a runtime-error 202 under certain con-
ditions. This is fixed;
Reported by : Pauline Surink
■ The error-log would report 'File moved to : xxx' (where xxx is
a directoryname). MTA would always report 'xxx' as the temporary
directory EVEN when a fixed error-path was installed. This is
now fixed;
■ MTA would keep the substituted drive and temporary directory
under certain error-conditions (no compressor available, CRC
errors and such) and would abort when trying to reuse the
subst-drive. This is fixed;
Reported by : Rob Lirb
■ Fixed a problem with ZIP in combination with HIDDEN and SYSTEM
files. ZIP would not store these files inside the ZIP-file.
This is fixed;
Reported by : Dave Overton
■ Implemented various new routines that are optimized on size and
speed. Internal processing will be around 10% better but the
overall speed will not change much because most of the time is
lost on the (de)compression;
■ MTA would not recognize ARC and LZH/LZS files when the first file
inside such an archive contained special, country dependent,
characters like ô and ë. This is fixed;
Reported by : Hanstheo Wolf
■ Documentation did not point out that the OwnCompressPath and the
OwnDecompressPath options could also use a second (opt) and even
third (SWAP) parameter;
Reported by : Rob Lirb
■ Added OriginalARJName option to force MTA to use the original
name of any ARJ source-file (the name is stored inside the
archive) and not the file-name itself.
■ Added TICKFiles option to extract comments from TICK-files;
■ Added UpdateUntypedFiles to update any type of file (even binary
files/programs) with the changed archive-name (if changed);
■ Implemented a new VirusScanner option (different syntax, so be
sure to read when you upgrade). It is now possible to call up
to 10 different scanners for each converted archive;
Suggested by : Harry Thijssen
■ Removed VirusScanParm option.
■ Added parameters for /OP option to generate passwords with normal
and current-year based julian dates inside the actual password;
Suggested by : Hantheo Wolf;
■ Added /SIM command-line option so MTA can be used to scan for
a virus (and call exits) without repacking (compressing) the
file(s) again;
Suggested by : Harry Thijssen
■ MTA would stuff keys into the keyboard before a scanner was
called. This to overcome the problem with McAfee's SCAN and
the prompt for the user when more than 15 viri were found.
This caused problems under multitaskers and this function is
now removed from MTA because you can use the /NOPAUSE option
in SCAN itself (version 76 and up);
Suggested by : Reinier de Groot
┌───────┬────────────────────────────┐
│ 14.45 │ Minor release │
└───────┴────────────────────────────┘
■ MTA will now read the MTA.CTL and command-line options much faster
than before. Depending on the number of comment-lines it will give
you a 50 to 500% gain in speed.
■ Fixed a little flaw with the LHARC 2.xx level 2 headers. MTA would
not recognize them. This is fixed.
■ Added $FN to /OP option;
Suggested by: Hanstheo Wolf
■ Added COMPort (/COM), FOSSILPort (/FOSSIL), BaudRate (/BAUD),
StoreSize (/STOSIZ) and /REMOTE options to use MTA inside protocol
doors and such on the BBS;
┌───────┬────────────────────────────┐
│ 14.50 │ Minor release │
└───────┴────────────────────────────┘
■ Fixed a bug with FILES.BBS entries in combination with /M and
MoveToPath options. Comments are now also moved from the original
FILES.BBS to the FILES.BBS inside the target directory;
Reported by : Andrew Leary
■ Fixed a bug that would show the cursor with MicroSoft's mouse
drivers version 7 (later versions) and 8. This is not the case
with other drivers (Genius for example) but since I moved from
a Genius FS-3xx serial mouse to a MicroSoft bus-mouse, this
trouble occured with MTA. I now hide the cursur everytime the
mouse is showed (after a hide);
■ Hopefully fixed a bug in the log-file processing;
Reported by : Bob R.
■ Added volume support for converion of volume-labels inside ZIP
and/or ARJ files (finally !!);
Suggested by : Dave Overton
■ Added support for ARJ 2.10. Added a new version of OPCFI that
will (correctly) detect volume labels in ARJ and ZIP files;
■ Changed the way that comments are added to ARJ-files. Up from
this release I dropped piping for ARJ. MTA now uses the -z
option with a temporary/fixed file to add comments to ARJ ar-
chives. Several users who complained about comments in ARJ,
will be glad to see this enhancement;
Reported by : Several users
■ Added support to move files from diferent DefaultPath directories
to different target-paths. A nice one for a BBS with multiple up-
load area's;
Suggested by : Bob R.
┌───────┬────────────────────────────┐
│ 14.51 │ Bug release │
└───────┴────────────────────────────┘
■ Fixed a problem with LZHCompression option. Users were unable to
use this option because of a bug. It is now (again) available for
usage (/O- f.i.).
Reported by : Gert Ensing
■ Fixed a problem with all ???Compression options. Some of them were
only able to store 3 to 7 bytes (ARJ to name one). These options
are now expanded to 30 bytes, so you can now supply a rich combi-
nation of extra options.
Reported by : Reinier de Groot
■ Fixed a problem with the KeepVolLabel option. Some users got pro-
blems when the option was set to on, even when NO files with in-
ternal volume-labels were processed.
Reported by : Hans Theo Wolf, Reinier de Groot
■ Fixed a problem with the new 2th DefaultPath parameter (move to).
When no path was supplied, MTA would try to move files into the
twilight-zone (sorry Rod Serling). This is now fixed. When no path
is supplied, MTA keeps the files inside the directory that is
supplied in the 1nd parameter and no files are moved.
Reported by : Bob R.
┌───────┬────────────────────────────┐
│ 14.55 │ Minor release │
└───────┴────────────────────────────┘
■ Fixed a problem in the UpdateUntypedFiles option where only upper-
case changes were made. Now also lower-case is included;
■ Added the DelOldFiles and DelOldPath options along with the /NOOLD
command-line option;
■ Added support for XARC/ARCE with the UNARCPath option;
Suggested by: Stefan Rubner
■ Added full support for TICK/FES (also CRC change) with the options
UpdateFESFiles, UpdateTICKFiles;
Suggested by: Reinier de Groot
■ Added full for ZOO 2.10 high-compressed files along with the new
ZOOCompression option and the /CO command-line option;
MTA is tested with PKWare PKPAK release 3.61, PKWare ZIP release 1.10,
│NoGate PAK release 2.51, ARC release 6.02 and ZOO release 2.10,
│DWC release 5.10, LHarc release 1.13c/d/2.13, LARC release 3.33, MDCD
│version 1.0, ARJ version 2.20, HYPER version 25 and PKLITE release
│1.12.
5.4 Copyright, Trademarks
────────────────────────────────────────────────────────────────────────
PKPAK, PKUNPAK, PKZIP and PKUNZIP are trademarks of PKWare Inc.
PKLITE is a trademark of PKWare Inc.
PAK is a trademark of NoGate Consulting.
ARC and XARC are trademarks of SEA inc.
ZOO is a trademark of R. Dhesi.
DWC is a trademark of Dean W. Cooper
LZH and LHarc are trademarks of Yoshi;
LZS and LARC are trademarks of K.Miki H.Okumura and K.Masuyama
MD is a trademark of Michael Davenport
│ARJ is a trademark of Robert K. Jung
HYPER is a trademark of Peter Sawatzki and Klaus Peter Nischke
CRA is a trademark of DISP and donated to public domain
Windows is a trademark of The Microsoft Corporation
4Dos is a trademark of J.P. Software / R.C. Conn and T. Rawson
FrontDoor is a trademark of J. Homrichhausen
SWAP is a trademark of Nico Mak / Mansfield Software Group
SCAN is a trademark of McAfee Associates
VIRSCAN is a trademark of J.P. van der Landen
TBSCAN is a trademark of Frans Veldman / ESaSS B.V.
VALIDATE is a trademark of McAfee Associates
QuickBBS is a trademark of the QuickBBS group Inc.
Remote Access is a trademark of Continental Software
TICK is a trademark of Berry Geller
│FES is a trademark of Frank Ploenissen
│MTA is written in Turbo Pascal 6.0, with help of the Turbo Debugger 2.0
│and makes extensive use of Object Professional 1.12 and OPCFI V 9.30.
│Some routines are obtained from TurboPower's Asynch Professional.
Also included are some routines of Blaise's fine PowerTools Plus
package (5.1). Both STRG and SYS (6.1 and 6.0a) are included because
I recently registered for (and got) a commercial license for both
products. Give them a try ! Very nice !
Turbo Pascal is a trademark of Borland International
Turbo Debugger is a trademark of Borland International
Object Professional is a trademark of TurboPower Inc.
Asynch Professional is a trademark of TurboPower Inc.
PowerTools Plus is a trademark of Blaise Computing Inc.
OPCFI is a trademark of Robert W. van Hoeven
STRG and SYS are trademarks of Eagle Performance Software
==================== END OF DOCUMENT ==================================